using UnityEngine; public class PlayerController : MonoBehaviour { public float accSpeed = 1; public float moveSpeed = 1; private float moveSpeedPos; public Rigidbody rb; public UnityEngine.CharacterController charcontroller; public Vector3 moveDir = Vector3.zero; private float gravScale = 0.982f; void Start() { charcontroller = GetComponent(); rb = this.GetComponent(); accSpeed=1; } // private void Update() // { // moveSpeedPos = moveSpeed; // if (charcontroller.isGrounded == true){ // moveSpeed += accSpeed*Input.GetAxis("Vertical")*Time.deltaTime; // if (moveSpeed>10){ // moveSpeed = 10; // } // moveSpeedPos = moveSpeed; // if (moveSpeed<-3){ // moveSpeed = -3; // } // if (moveSpeed<0){ // moveSpeedPos= moveSpeed*-1; // } // moveDir.Set(0.0f,0.0f,1.0f); // moveDir = transform.TransformDirection(moveDir); // transform.Rotate(0.0f,Input.GetAxis("Horizontal")/moveSpeed,0.0f); // } // print(moveDir); // print(moveSpeedPos); // moveDir.y -= gravScale * Time.time; // charcontroller.Move(moveDir*moveSpeedPos*Time.deltaTime); // } private void Update() { if (charcontroller.isGrounded == true){ moveSpeed += accSpeed*Input.GetAxis("Vertical")*Time.deltaTime; if (moveSpeed>10){ moveSpeed = 10; } if (moveSpeed<-3){ moveSpeed = -3; } if ((Input.GetAxis("Vertical") == 0)){ print("not pressing"); if (moveSpeed < 1/(moveSpeed/moveSpeedPos+0.01f)*1/(moveSpeed/moveSpeedPos+0.01f)*Time.deltaTime){ moveSpeed=0; }else{ moveSpeed -= 1/(moveSpeed/moveSpeedPos+0.01f)*1/(moveSpeed/moveSpeedPos+0.01f)*Time.deltaTime; } } moveDir.Set(0.0f,0.0f,1.0f); moveDir = transform.TransformDirection(moveDir); transform.Rotate(0.0f,Input.GetAxis("Horizontal")/(moveSpeed+0.1f),0.0f); } else{ //moveDir.y -= gravScale * Time.time; } if (moveSpeed<0){ moveSpeedPos= moveSpeed*-1; } else { moveSpeedPos = moveSpeed; } charcontroller.Move(moveDir*moveSpeedPos*Time.deltaTime); } }