character controller code code example

Example 1: character controller code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Example : MonoBehaviour
{
    private CharacterController controller;
    private Vector3 playerVelocity;
    private bool groundedPlayer;
    private float playerSpeed = 2.0f;
    private float jumpHeight = 1.0f;
    private float gravityValue = -9.81f;

    private void Start()
    {
        controller = gameObject.AddComponent<CharacterController>();
    }

    void Update()
    {
        groundedPlayer = controller.isGrounded;
        if (groundedPlayer && playerVelocity.y < 0)
        {
            playerVelocity.y = 0f;
        }

        Vector3 move = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        controller.Move(move * Time.deltaTime * playerSpeed);

        if (move != Vector3.zero)
        {
            gameObject.transform.forward = move;
        }

        // Changes the height position of the player..
        if (Input.GetButtonDown("Jump") && groundedPlayer)
        {
            playerVelocity.y += Mathf.Sqrt(jumpHeight * -3.0f * gravityValue);
        }

        playerVelocity.y += gravityValue * Time.deltaTime;
        controller.Move(playerVelocity * Time.deltaTime);
    }
}

Example 2: 3d movement unity

using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class playerMovement : MonoBehaviour {     
 public float speed = 25.0F;     
 public float jumpSpeed = 8.0F;      
 public float gravity = 20.0F;     
 private Vector3 moveDirection = Vector3.zero;
 private float turner;     
 private float looker;     
 public float sensitivity = 5;         
 // Use this for initialization     
 void Start () {              
 
 }          
 // Update is called once per frame     
 void Update () {         
      CharacterController controller = GetComponent<CharacterController>();
      // is the controller on the ground?         
      if (controller.isGrounded) {             
      //Feed moveDirection with input.             
      moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
      moveDirection = transform.TransformDirection(moveDirection);
      //Multiply it by speed.
      moveDirection *= speed;
      //Jumping
      if (Input.GetButton("Jump")moveDirection.y = jumpSpeed;                      }         turner = Input.GetAxis ("Mouse X")* sensitivity;         looker = -Input.GetAxis ("Mouse Y")* sensitivity;         if(turner != 0){             //Code for action on mouse moving right             transform.eulerAngles += new Vector3 (0,turner,0);         }         if(looker != 0){             //Code for action on mouse moving right             transform.eulerAngles += new Vector3 (looker,0,0);         }         //Applying gravity to the controller         moveDirection.y -= gravity * Time.deltaTime;         //Making the character move         controller.Move(moveDirection * Time.deltaTime);     } }