- Home /
Adding a jump feature help?
I created this script for a specific project and when i added my versions of jumping I ended up seeing undesirable results in how fast my character jumped and the time it took for it to fall. Is there any way to add a nice jump feature using the gravity i have initialized?
using UnityEngine; using System.Collections;
[RequireComponent (typeof(CharacterController))] public class AdvancedMovement : MonoBehaviour {
public float runSpeed = 0.1f;
public float strafeSpeed = 2.5f;
public float gravity = 20;
private CharacterController _controller; //Our cached CharacterController.
public void Awake() {
_controller = GetComponent<CharacterController>();
}
void Start () {
animation.wrapMode = WrapMode.Loop;
}
void Update () {
_controller.Move(Vector3.down * gravity * Time.deltaTime);
if(_controller.isGrounded){
_controller.Move(Vector3.forward * runSpeed);
animation.CrossFade("RunInPlace");
}
if(Input.GetButton("Strafe")){
animation.CrossFade("RunInPlace");
_controller.Move(Vector3.right * Input.GetAxis("Strafe") * strafeSpeed);
}
}
}
I think you forgot to show the jump feature in your code; all I see is strafing, automatic running, and automatic falling.
Answer by TripodGRANNE · Feb 01, 2012 at 07:08 PM
Instead of using:
_controller.Move(Vector3.down * gravity * Time.deltaTime);
You should try to use:
_controller.Move(Vector3.down -= gravity * Time.deltaTime);
Theres no guarantees that this will work, check this for more Help
Answer by FortisVenaliter · Jan 31, 2017 at 08:25 PM
What you want to do is track the velocity, and add Gravity to that, instead of adding the gravity directly to the position.
So, add a variable to track the Y-Velocity. Each frame, add the gravity. Then, use that velocity to move the character. That will give you the parabolic arc you are looking for.
Your answer
![](https://koobas.hobune.stream/wayback/20220613063620im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
how to jump with 2d? 1 Answer
Jumping script WONT WORK!!!!!!!! for 2D 1 Answer
Getting this character controll script working right 1 Answer
Multiple jump C# Script. 0 Answers
How to do this? 2 Answers