我无法找到编写简单代码的最佳方法。我需要在每个事件上播放动画(例如点击)并在动画结束时停止。
所以我有两个动画的对象:空闲和活动。而bool变“状态”。 如果state == false则将运行空闲动画 如果state == true则将运行活动动画。 点击后我将状态更改为true。
问题:
如果我以某种方式捕捉动画结束(使用事件或在更新中检查状态)并将状态更改为false
动画应该重新开始。
架构变得非常困难(如果我有这样的几个对象,那将会非常糟糕)
答案 0 :(得分:0)
假设您正在使用Mecanim,您可以使用trigger类型参数而不是布尔值。
答案 1 :(得分:0)
我理解问题是状态boolean设置为true所以它启动动画。在动画结束时,它会转换回空闲状态,但由于布尔值为true,它将转回以再次播放动画。
解决方案:在动画中放置一个AnimationEvent(以示例开头)并将其链接到将布尔值重置为false的方法。 https://docs.unity3d.com/ScriptReference/AnimationEvent.html
然后当动画结束时,它将转回空闲状态。由于布尔值已经重置,它将不会转回动画,并将保持空闲状态,直到另一个布尔值更改为止。