Animation 如何在Unity3d中的3d对象(3d立方体)上创建“点击效果”?
我有一个3d对象立方体,我想用作按钮。我编写代码是为了检测立方体是否被按下,但它看起来不像被按下了,因为它缺少单击动画。如何在我的3d对象上创建单击动画?您可以使用新的unity事件系统来实现您的按钮。以下是您可以实现的功能:Animation 如何在Unity3d中的3d对象(3d立方体)上创建“点击效果”?,animation,button,unity3d,gameobject,Animation,Button,Unity3d,Gameobject,我有一个3d对象立方体,我想用作按钮。我编写代码是为了检测立方体是否被按下,但它看起来不像被按下了,因为它缺少单击动画。如何在我的3d对象上创建单击动画?您可以使用新的unity事件系统来实现您的按钮。以下是您可以实现的功能: public class ExampleClass : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IPointerEnterHandler, IPointerE
public class ExampleClass : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData eventData)
{
//it is the function when you hover your mouse to the object
//You can change the color of your object to make your users
//understand that it is not just a cube but also a clickable item
}
public void OnPointerExit(PointerEventData eventData)
{
//You can revert your color back to its original
}
public void OnPointerDown (PointerEventData eventData)
{
//You can play with local scale as suggested by other answers here
}
public void OnPointerUp (PointerEventData eventData)
{
// Revert back the changes you made at onPointerDown
}
public void OnPointerClick (PointerEventData eventData)
{
//Use here for operations when your button is clicked
}
}
您可以使用unity的新事件系统来实现您的按钮。以下是您可以实现的功能:
public class ExampleClass : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData eventData)
{
//it is the function when you hover your mouse to the object
//You can change the color of your object to make your users
//understand that it is not just a cube but also a clickable item
}
public void OnPointerExit(PointerEventData eventData)
{
//You can revert your color back to its original
}
public void OnPointerDown (PointerEventData eventData)
{
//You can play with local scale as suggested by other answers here
}
public void OnPointerUp (PointerEventData eventData)
{
// Revert back the changes you made at onPointerDown
}
public void OnPointerClick (PointerEventData eventData)
{
//Use here for operations when your button is clicked
}
}
一旦单击“发生”,您可以将其缩小一点。例如:
void OnMouseDown() {
this.transform.localScale += new Vector3(0.05f, 0.05f, 0.05f);
}
然后单击后将其缩放回原始大小。一旦单击“发生”,您可以将其缩小一点。例如:
void OnMouseDown() {
this.transform.localScale += new Vector3(0.05f, 0.05f, 0.05f);
}
然后单击后将其缩放回原始大小。一个好主意是播放一个动画,稍微旋转立方体,然后立即将其释放。您希望在单击时执行的处理程序代码可能会阻止游戏循环,例如在加载关卡时。然后,为了能够看到动画,可能需要同步加载关卡。或者在动画之后执行处理程序代码。或者,在“新闻”事件中播放缩小动画,在“发布”事件中播放放大动画 从技术上讲,您可以使用内置动画编辑器、更新方法、启动协同程序或使用iTween或HOTween资源
如果您喜欢这个想法或有问题,请告诉我。一个好主意是播放一个动画,稍微旋转立方体,然后立即释放它。您希望在单击时执行的处理程序代码可能会阻止游戏循环,例如在加载关卡时。然后,为了能够看到动画,可能需要同步加载关卡。或者在动画之后执行处理程序代码。或者,在“新闻”事件中播放缩小动画,在“发布”事件中播放放大动画 从技术上讲,您可以使用内置动画编辑器、更新方法、启动协同程序或使用iTween或HOTween资源
如果您喜欢这个想法或出现问题,请告诉我。Unity现在可以更轻松地使用Unity Canvas UI进行此操作。您可以在世界空间中需要按钮的位置放置画布UI,而不是真正的3d按钮。将UI面板添加到画布,然后添加UI按钮 现在,您有了一些现成的点击效果。默认设置为“颜色着色”,但可以选择“精灵交换”或“动画” 如果您确实想要动画,当您选择“按钮动画”时,它将为您创建一个动画师。单击场景层次中的UI按钮游戏对象并打开动画窗口。您可以从下拉列表中选择已按下的动画,然后按“录制”按钮,然后编辑按钮比例,例如,将x、y、z的比例设为0.75。现在,当您单击按钮时,它将为您设置一个冷缩放动画
对不起,我知道有很多信息被丢弃了!但一旦你开始在世界空间中使用它,你会发现它非常棒。Unity现在使用Unity Canvas UI更容易做到这一点。您可以在世界空间中需要按钮的位置放置画布UI,而不是真正的3d按钮。将UI面板添加到画布,然后添加UI按钮 现在,您有了一些现成的点击效果。默认设置为“颜色着色”,但可以选择“精灵交换”或“动画” 如果您确实想要动画,当您选择“按钮动画”时,它将为您创建一个动画师。单击场景层次中的UI按钮游戏对象并打开动画窗口。您可以从下拉列表中选择已按下的动画,然后按“录制”按钮,然后编辑按钮比例,例如,将x、y、z的比例设为0.75。现在,当您单击按钮时,它将为您设置一个冷缩放动画
对不起,我知道有很多信息被丢弃了!但一旦你开始在世界空间使用它,你会发现它非常棒。也许可以在Unity Asset store上免费查看它
它非常容易使用,你可以制作一些好看的动画 也许可以在Unity Asset store上免费查看它
它非常容易使用,你可以制作一些好看的动画 您可以在按下时缩放它,或只是稍微更改一下颜色。鼠标向上移动时,重新缩放或重新缩放它
void OnMouseDown()
{
transform.localScale -= new Vector3(0.05, 0.05 , 0);
//or
transform.GetComponent<SpriteRenderer>().color += new Color(40,40,40);
}
void OnMouseUp()
{
transform.localScale += new Vector3(0.05, 0.05 , 0);
//or
transform.GetComponent<SpriteRenderer>().color -= new Color(40,40,40);
}
您可以在按下时缩放它,或只是稍微更改一下颜色。鼠标向上移动时,重新缩放或重新缩放它
void OnMouseDown()
{
transform.localScale -= new Vector3(0.05, 0.05 , 0);
//or
transform.GetComponent<SpriteRenderer>().color += new Color(40,40,40);
}
void OnMouseUp()
{
transform.localScale += new Vector3(0.05, 0.05 , 0);
//or
transform.GetComponent<SpriteRenderer>().color -= new Color(40,40,40);
}
听起来你可以只在一个本地轴上移动按钮?听起来你可以只在一个本地轴上移动按钮?这不是真正的游戏,而是使用vuforia SDK的应用程序的一部分。在图像识别之后,我添加了一些立方体作为按钮,我希望它们可以点击。我想让用户明白:嘿,你可以按下这些立方体。这些不仅仅是盒子,而是按钮。我希望他们有一个简单的2d按钮,点击,或者至少类似的动画。这不是真正的游戏,而是游戏的一部分 该应用程序使用vuforia SDK。在图像识别之后,我添加了一些立方体作为按钮,我希望它们可以点击。我想让用户明白:嘿,你可以按下这些立方体。这些不仅仅是盒子,而是按钮。我希望他们有一个动画作为一个简单的2d按钮,点击,或至少类似的东西。