你可以在跳跃动画结束后设置 IsJumpInitiated 为 false。你可以使用 AnimatorState 的 OnStateExit 方法来实现这一点。
private void OnStateExit(Animator animator, AnimatorState state)
{
if (state.name == Is_Jumping.ToString())
{
IsJumpInitiated = false;
}
}
你还可以使用 Animator 的 SetTrigger 方法来设置 IsJumpInitiated 为 false。在跳跃动画结束后,设置 Is_Jumping 为 false。
private void Update()
{
if (m_player.IsPlayerJumping())
{
animator.SetTrigger(Is_Jumping);
}
else
{
animator.SetBool(IS_Walking, m_player.IsPlayerWalking());
animator.SetTrigger(Is_Jumping, false);
}
}
或者,你可以在跳跃动画结束后,使用 Coroutine 或 Timer 来设置 IsJumpInitiated 为 false。
private void Update()
{
if (m_player.IsPlayerJumping())
{
animator.SetTrigger(Is_Jumping);
StartCoroutine(SetJumpInitiatedFalse());
}
else
{
animator.SetBool(IS_Walking, m_player.IsPlayerWalking());
}
}
private IEnumerator SetJumpInitiatedFalse()
{
yield return new WaitForSeconds(m_jumpDuration);
IsJumpInitiated = false;
}
其中 m_jumpDuration 是跳跃动画的持续时间。
评论 (0)