Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
首先这个脚本必须继承自StateMachineBehaviour
public class MySMB : StateMachineBehaviour { public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); Debug.Log("!!!"); } }
然后切到Animator面板,选择状态机里的任意状态,点击Add Behaviour即可挂载
这时运行游戏,当状态机运行至Jump状态时,程序打出Log
注意
1.状态机脚本可以挂载到Layer上,但只会调用OnStateUpdate和OnStateEnter,不会调用OnStateMachineExit
2.状态机脚本也可以挂载到子状态机中,但只在退出子状态机时调用一次OnStateMachineExit,OnStateUpdate是每次都调用,OnStateEnter是每个内部状态进入的时候调用
3.OnStateMove不管动画有无根运动,是否打开根运动,都会调用,并且重写后托管原先的根运动