示例#1
0
    internal void PrepareJump(Jumpstate jumpstate)
    {
        switch (jumpstate)
        {
        case Jumpstate.normal:
            jumpHeight = standardJumpHeight;
            break;

        case Jumpstate.boosted:
            jumpHeight = standardJumpHeight + jumpBoost;
            break;

        case Jumpstate.spring:
            jumpHeight = standardJumpHeight + (jumpBoost * 2f);
            break;

        case Jumpstate.swimming:
            jumpHeight = swimJumpHeight;
            break;
        }
        myRigidbody.gravityScale = isSwimming ? swimJumpGravity : jumpGravity;
        myAnimator.SetTrigger("Jump");
        startY = transform.position.y;
        jump   = true;
    }
    void Update()
    {
        MovementInput.x = Input.GetAxisRaw("Horizontal");
        MovementInput.y = Input.GetAxisRaw("Vertical");

        if (Input.GetKey(KeyCode.W))
        {
            jumpstate = Jumpstate.Jumping;
        }

        if (jumpstate == Jumpstate.Jumping)
        {
            JumpHeight = MovementInput.y += JumpHeight;
            jumpstate  = Jumpstate.Waiting_for_Jump;
        }
    }
 void Start()
 {
     rb        = GetComponent <Rigidbody2D>();
     jumpstate = Jumpstate.Waiting_for_Jump;
 }