How to make player jump smaller distance if space is pressed for shorter duration?
I literally started with unity yesterday, and I found myself on the tracks of making a movement-oriented 3d platform through the help of various yt tutorials. This is my jump code, (probably copied character for character):` private void Jump() { if (grounded) { readyToJump = false;
//Add jump forces
rb.AddForce(Vector2.up * jumpForce * 1.5f);
rb.AddForce(normalVector * jumpForce * 0.5f);
//If jumping while falling, reset y velocity.
Vector3 vel = rb.velocity;
if (rb.velocity.y < 0.5f)
rb.velocity = new Vector3(vel.x, 0, vel.z);
else if (rb.velocity.y > 0)
rb.velocity = new Vector3(vel.x, vel.y / 2, vel.z);
Invoke(nameof(ResetJump), jumpCooldown);
}
if (!grounded)
{
readyToJump = false;
//Add jump forces
rb.AddForce(orientation.forward * jumpForce * 1f);
rb.AddForce(Vector2.up * jumpForce * 1.5f);
rb.AddForce(normalVector * jumpForce * 0.5f);
//Reset Velocity
rb.velocity = Vector3.zero;
//Disable dashForceCounter if doublejumping while dashing
allowDashForceCounter = false;
Invoke(nameof(ResetJump), jumpCooldown);
}
//Walljump
if (isWallRunning)
{
readyToJump = false;
//normal jump
if (isWallLeft && !Input.GetKey(KeyCode.D) || isWallRight && !Input.GetKey(KeyCode.A))
{
rb.AddForce(Vector2.up * jumpForce * 1.5f);
rb.AddForce(normalVector * jumpForce * 0.5f);
}
//sidwards wallhop
if (isWallRight || isWallLeft && Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.D)) rb.AddForce(-orientation.up * jumpForce * 1f);
if (isWallRight && Input.GetKey(KeyCode.A)) rb.AddForce(-orientation.right * jumpForce * 3.2f);
if (isWallLeft && Input.GetKey(KeyCode.D)) rb.AddForce(orientation.right * jumpForce * 3.2f);
//Always add forward force
rb.AddForce(orientation.forward * jumpForce * 1f);
//Disable dashForceCounter if doublejumping while dashing
allowDashForceCounter = false;
Invoke(nameof(ResetJump), jumpCooldown);
}
}
private void ResetJump()
{
readyToJump = true;
}`
Keep in mind i could never write this on my own, so if you do know a solution, a code example, or a really good explanation would be apreciated.
Answer by LetsBlend3 · Oct 04, 2021 at 02:52 PM
This could help its a tutorial from blackthornprod I mean its 2d and you jump higher instead of further when you hold the the jump key but the foundation is the same. Unfortunately I don't have time to help you more than this but good luck finding a solution tho:)
Here is the tutorial https://www.youtube.com/watch?v=j111eKN8sJw
Your answer
Follow this Question
Related Questions
Control Air movement with character controller 0 Answers
Bugs on move in air(falling); 0 Answers
Standard FPS Controller - Sounds Cancelling One Another 0 Answers
How do you make the character stuck on the ceilling when at that moment the velocity.y is > 0 0 Answers
Make it so you cant jump in air 0 Answers