回到 Animator深入系列总目录

 

 

首先这个脚本必须继承自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不管动画有无根运动,是否打开根运动,都会调用,并且重写后托管原先的根运动

转载于:https://www.cnblogs.com/hont/p/5093334.html

Logo

分享最新的 NVIDIA AI Software 资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐