void WallJump() { Debug.Log("Walljump"); Vector3 walljumpWay = Vector3.right; walljumpWay.y = Mathf.Tan(LastWallAngle - 180); walljumpWay.Normalize(); walljumpWay *= wallJumpForce.x; walljumpWay.y = wallJumpForce.y; MoveForce f = new MoveForce(walljumpWay, wallJumpGravity, wallJumpTime, 0.1f); forces.Add(f); wallClimb = ClimbState.Jumping; }
void Dive() { if (Input.GetAxisRaw("Dive") == 1) { if (isDiving) { return; } } else { if (isGrounded) { isDiving = false; } return; } Debug.Log("Dive"); isDiving = true; Vector3 forward = transform.forward; Vector3 force = forward.normalized; Vector3 gravity = forward.normalized; force.x *= DiveSpeed.x; force.z *= DiveSpeed.x; force.y = DiveSpeed.y; gravity.x *= DiveGravity.x; gravity.z *= DiveGravity.x; gravity.y = DiveGravity.y; currentDive = new MoveForce(force, gravity, DiveTime, 0.5f, 0); forces.Add(currentDive); }