- 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
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