Example #1
0
    public void Jump()
    {
        //接触地面才能跳
        if (!rb.isOnGround || abilController.acting)
        {
            return;
        }

        rb.AddForce(Vector2.up * jumpVelocity);

        actor.SetBool("Jumping", true);

        //LeaveGround();
    }
Example #2
0
    public void Jump()
    {
        if (isStuned)
        {
            return;
        }

        if (wallSliding)
        {
            float inputH  = Input.GetAxisRaw("Horizontal");
            int   wallDir = (rigidbodyBox.collisions.left) ? -1 : 1;

            if (wallDir == inputH)              //按朝着墙的方向
            {
                rigidbodyBox.velocity.x = -wallDir * wallJumpClimb.x;
                rigidbodyBox.velocity.y = wallJumpClimb.y;
            }
            else if (inputH == 0)               //不按方向键
            {
                rigidbodyBox.velocity.x = -wallDir * wallJumpOff.x;
                rigidbodyBox.velocity.y = wallJumpOff.y;
            }
            else               //按和墙反方向键
            {
                rigidbodyBox.velocity.x = -wallDir * wallLeap.x;
                rigidbodyBox.velocity.y = wallLeap.y;
            }
        }
        else
        {
            //接触地面才能跳
            if (rigidbodyBox.isOnGround)
            {
                rigidbodyBox.AddForce(Vector2.up * jumpVelocity);
            }
        }
    }