你可以在跳跃动画结束后设置 IsJumpInitiatedfalse。你可以使用 AnimatorStateOnStateExit 方法来实现这一点。

private void OnStateExit(Animator animator, AnimatorState state)
{
    if (state.name == Is_Jumping.ToString())
    {
        IsJumpInitiated = false;
    }
}

你还可以使用 AnimatorSetTrigger 方法来设置 IsJumpInitiatedfalse。在跳跃动画结束后,设置 Is_Jumpingfalse

private void Update()
{
    if (m_player.IsPlayerJumping())
    {
        animator.SetTrigger(Is_Jumping);
    }
    else
    {
        animator.SetBool(IS_Walking, m_player.IsPlayerWalking());
        animator.SetTrigger(Is_Jumping, false);
    }
}

或者,你可以在跳跃动画结束后,使用 CoroutineTimer 来设置 IsJumpInitiatedfalse

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 是跳跃动画的持续时间。