how to make a first person controller in c#
public float speed = 10.0f;
public float straffeSpeed = 7.0f;
public float jumpHeight = 3.0f;
Rigidbody rb;
// Start is called before the first frame update
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
float DisstanceToTheGround = GetComponent<Collider>().bounds.extents.y;
bool IsGrounded = Physics.Raycast(transform.position, Vector3.down, DisstanceToTheGround + 0.1f);
float translation = Input.GetAxis("Vertical") * speed;
float straffe = Input.GetAxis("Horizontal") * straffeSpeed;
translation *= Time.deltaTime;
straffe *= Time.deltaTime;
//anim.SetTrigger("isWalking");
transform.Translate(straffe, 0, translation);
//rb.velocity = transform.forward * translation + transform.right * straffe ;
if(IsGrounded && Input.GetKeyDown("space"))
{
Debug.Log("JUMP!");
rb.velocity = new Vector3(0, jumpHeight, 0);
}
if (Input.GetKey(KeyCode.R))
{
Scene scene = SceneManager.GetActiveScene();
SceneManager.LoadScene(scene.name);
}
if (Input.GetKeyDown("escape"))
{
Application.Quit();
//Cursor.lockState = CursorLockMode.None;
}
}
}