first person fps controller code example
Example 1: fps movment unity
public float walkSpeed = 6.0F;
public float jumpSpeed = 8.0F;
public float runSpeed = 8.0F;
public float gravity = 20.0F;
private Vector3 moveDirection = Vector3.zero;
private CharacterController controller;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
if (controller.isGrounded)
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= walkSpeed;
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
Example 2: 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;
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
rb = GetComponent<Rigidbody>();
}
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;
transform.Translate(straffe, 0, translation);
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();
}
}
}