Unity3d动画返回空闲状态

时间:2017-02-03 11:34:25

标签: unity3d

我无法找到编写简单代码的最佳方法。我需要在每个事件上播放动画(例如点击)并在动画结束时停止。

所以我有两个动画的对象:空闲和活动。而bool变“状态”。 如果state == false则将运行空闲动画 如果state == true则将运行活动动画。 点击后我将状态更改为true。

问题:

  • 如果状态改变一次则值为true且“活动”动画将不再播放。

如果我以某种方式捕捉动画结束(使用事件或在更新中检查状态)并将状态更改为false

  • 动画应该重新开始。

  • 架构变得非常困难(如果我有这样的几个对象,那将会非常糟糕)

2 个答案:

答案 0 :(得分:0)

假设您正在使用Mecanim,您可以使用trigger类型参数而不是布尔值。

答案 1 :(得分:0)

我理解问题是状态boolean设置为true所以它启动动画。在动画结束时,它会转换回空闲状态,但由于布尔值为true,它将转回以再次播放动画。

解决方案:在动画中放置一个AnimationEvent(以示例开头)并将其链接到将布尔值重置为false的方法。 https://docs.unity3d.com/ScriptReference/AnimationEvent.html

然后当动画结束时,它将转回空闲状态。由于布尔值已经重置,它将不会转回动画,并将保持空闲状态,直到另一个布尔值更改为止。