2017-01-16 23 views
0

我在Unity制作2D游戏,并且为主角制作了4个动画;向上,向下,向左和向右。要做到这一点,我只是做了动画,并用这样一行代码触发它们:我该如何在Unity中制作一个动画,然后切换回另一个动画

anim.SetBool ("movingUp", true); 

当按下向上键时会发生这种情况。这种类型的动画很容易处理,因为它不是基于时间,而是玩家想要角色处于该状态的时间。我现在试图添加一个动画,当角色与另一个游戏对象发生碰撞时触发。我不知道如何制作,所以动画只播放一次,然后回到其他动画。有没有办法触发动画在Unity中只播放一次?

+0

想想你的动画作为状态,和动画控制器状态机。我会制作一个空闲的动画,并将其作为参赛作品。让您的其他动画能够运行,然后根据逻辑回退到默认(空闲)动画。您可以通过单击它来设置每个动画的属性。他们在检查 – mtrueblood

+0

@mtrueblood性格绝不会处于闲置状态弹出,这并没有真正回答我的问题,我已经知道如何用动画的工作,我有他们的工作,我只是不现在如何使动画播放只有一次。你不能用状态逻辑通过自己的方式,由于字符是在它击中的一瞬间竞赛对象第二,没有足够长的时间来播放动画的状态,那么你如何播放动画,直到它完全就是我问 – dmkanerer

+0

你应该提供更多的细节,我的评论只是作为一般性评论,因为我不确定你的问题到底是什么。您可以为动画设置固定的持续时间,并关闭动画面板的循环。 – mtrueblood

回答

0

一般来说,你不必编码自己的控制器,Unity已经有了这个,here是官方Unity教程如何使用它的链接。您需要的是fire off a trigger,就像您在collision上所做的一样,并在控制器中检查has exit time。之后,您只需将状态引导回您想要返回的动画即可。再次,在网上找到准确和彻底的教程在Unity Mecanim how toAnimations in Unity或类似的东西。

相关问题