89 lines
2.6 KiB
C#
89 lines
2.6 KiB
C#
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<CharacterController>();
|
|
rb = this.GetComponent<Rigidbody>();
|
|
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);
|
|
|
|
}
|
|
} |