c# If语句层次结构只有在顺序(Unity)

本文关键字:顺序 Unity If 语句 层次结构 | 更新日期: 2023-09-27 18:04:15

在Unity中,我试图让玩家在跳跃时保持速度,也就是如果你在运动中跳跃,保持前进。下面是我到目前为止的代码:

    if (VerVelocity != 0 || HorVelocity != 0) {
            if (Anim.GetCurrentAnimatorStateInfo(0).IsName("jump") || Anim.GetCurrentAnimatorStateInfo(0).IsName("fall")) {
                transform.Translate(Vector3.forward * VerVelocity * JumpSpeedMultiplier * Time.deltaTime);
                transform.Translate(Vector3.right * HorVelocity * JumpSpeedMultiplier * Time.deltaTime);
            }
    }

HorVelocity和VerVelocity是自上而下的,这意味着Hor表示左和右,Ver表示向前和向后。我遇到的问题是这些事件可以以任何顺序发生,这意味着你可以在半空中改变方向。我怎样才能检查你在跳之前而不是跳之后是在跑呢?谢谢你提供的任何帮助!

c# If语句层次结构只有在顺序(Unity)

在animator中创建2个状态,一个用于jump,一个用于runjump,然后将此代码用于runjump状态