Ejemplo n.º 1
0
 private void MovePlayer()
 {
     if (isGrounded)
     {
         Vector3 slopeVector   = SlopeCheck();
         float   moveIntensity = Vector2.Distance(Vector2.zero, new Vector2(horizontalInput, verticalInput));
         //velocityVector = new Vector3((playerRb.transform.forward.x + slopeVector.x)  * moveIntensity * moveSpeed, 0f, (playerRb.transform.forward.z + slopeVector.z) * moveIntensity * moveSpeed);
         velocityVector = new Vector3((slopeVector.x) * moveIntensity * moveSpeed, 0f, (slopeVector.z) * moveIntensity * moveSpeed);
         playerAnimationController.HandlePlayerSpeed(Mathf.Clamp01(moveIntensity));
         yVelocity = slopeVector.y * moveIntensity * moveSpeed;
         if (shouldJump)
         {
             yVelocity  = jumpForce;
             isJumping  = true;
             shouldJump = false;
         }
     }
     else
     {
         yVelocity = yVelocity - playerGravity;
         if (!isJumping)
         {
             velocityVector = new Vector3(transform.forward.x * 0.1f * moveSpeed, 0f, transform.forward.z * 0.1f * moveSpeed);
             //switch isJumping back to false when the jump has ended
         }
     }
     velocityVector.y  = yVelocity;
     playerRb.velocity = velocityVector;
 }