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之间设计了一个空状态。


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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值