unity3D角色状态随机切换,十分简单!

我们能学到什么

在看完本博客后,你将可以非常简单的创建一组相似状态如Idle状态,并随机切换


在YouTuBe上看了一段关于随机切换角色Idle状态的视频,全篇只需两行代码就可以实现。

步骤:

首先在Animator界面创建Sub-state Machine,然后创建一个空的状态,最后像这样连接动画状态:


切记要建立一个新状态,否则不会成功,个人试了很多次...发现只有创建了空状态,再转入Sub-state Machine才可以实现之后的功能


接着双击Idle State在其中添加自己的Idle动画 如:idle1,idle2... 如下图:



接着我们声明一个参数,参数类型为int:


然后,我们为从Entry到各个动画设定转换条件如下图:


下一步我们创建script,步骤如下:

点击Idle State,在Inspector中 点击Add Behavior 添加一个脚本。如下图:


最后 我们打开该脚本,并进行如下编辑:


可以看到,只有两行代码,十分简单,随机数范围根据自己的动画数目具体决定。 之前说过,必须要建立一个空状态,其他状态也可以(有待验证),现在解释为什么不能直接Entry-——>Idle State:

官方文档这样说明OnStateMachineEnter方法:Called on the first Update frame when making a transition to a StateMachine. This is not called when making a transition into a StateMachine sub-state. 当在第一个Update帧进行转换状态机时被调用,但是在转向StateMachine sub-state(Idle State)时不会被调用。所以我们在第一个Update被调用时不能是转换到StateMachine sub-state,因此我们在Entry和Idle State之间设计了一个空状态。


这是博主的第一个博客,写到不好还请见谅,哪里有错误希望指出,谢谢。

如果想转载,希望注明出处,谢谢。

你可能感兴趣的:(unity3D角色状态随机切换,十分简单!)