创建动画状态机脚本:
using System;
using UnityEngine;
using System.Collections;
public class AnimatorStateMachine : StateMachineBehaviour
{
public Action<int> EnterStateCallBack;
public Action<int> ExitStateCallBack;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
base.OnStateEnter(animator, stateInfo, layerIndex);
if (EnterStateCallBack != null)
{
EnterStateCallBack(stateInfo.fullPathHash);
}
}
public override void OnStateMachineEnter(Animator animator, int stateMachinePathHash)
{
base.OnStateMachineEnter(animator, stateMachinePathHash);
if (EnterStateCallBack != null)
{
EnterStateCallBack(stateMachinePathHash);
}
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
base.OnStateExit(animator, stateInfo, layerIndex);
if (ExitStateCallBack != null)
{
ExitStateCallBack(stateInfo.fullPathHash);
}
}
public override void OnStateMachineExit(Animator animator, int stateMachinePathHash)
{
base.OnStateMachineExit(animator, stateMachinePathHash);
if (ExitStateCallBack != null)
{
ExitStateCallBack(stateMachinePathHash);
}
}
}

本文介绍了如何在Unity3D中使用StateMachineBehaviours进行动画系统管理。通过创建动画状态机脚本,结合Animator组件和自定义的属性脚本来实现复杂动画控制。在实际操作中,将状态机脚本挂载到Animator上,并编写相应的控制脚本,确保在角色动画控制器下正确运行。
1万+

被折叠的 条评论
为什么被折叠?



