assistant: Here is a basic Unity CharacterController.Move script:                                                                                                                                                          
                                                                                                                                                                                                                
using System.Collections;                                                                                                                                                                                       
using System.Collections.Generic;                                                                                                                                                                               
using UnityEngine;                                                                                                                                                                                              
                                                                                                                                                                                                                
public class FirstPerson : MonoBehaviour {                                                                                                                                                                      
  private CharacterController controller;                                                                                                                                                                       
  private bool grounded;                                                                                                                                                                                        
  private float G = -9.81f;                                                                                                                                                                                     
  private float vy = 0f;                                                                                                                                                                                        
  private float moveJumpHeight = 1f;                                                                                                                                                                            
  private float moveStrafeSpeed = 1f;                                                                                                                                                                           
  private float moveWalkSpeed = 2f;                                                                                                                                                                             
  private float lookHorizontalSpeed = 2f;                                                                                                                                                                       
  private float lookVerticalSpeed = 1f;                                                                                                                                                                         
                                                                                                                                                                                                                
  private void Start() {                                                                                                                                                                                        
    controller = gameObject.AddComponent<CharacterController>();                                                                                                                                                
  }                                                                                                                                                                                                             
                                                                                                                                                                                                                
  void Update() {                                                                                                                                                                                               
    grounded = controller.isGrounded;                                                                                                                                                                           
    vy += Time.deltaTime * G;                                                                                                                                                                                   
    if (grounded && vy < 0) { vy = 0f; }                                                                                                                                                                        
    if (grounded && Input.GetButtonDown("Jump")) { vy += Mathf.Sqrt(-3f * G * moveJumpHeight); }                                                                                                                
                                                                                                                                                                                                                
    Vector3 look = new Vector3( lookVerticalSpeed * Input.GetAxis("Mouse Y"), lookHorizontalSpeed * Input.GetAxis("Mouse X"), 0 );                                                                              
    Vector3 move = new Vector3( moveStrafeSpeed * Time.deltaTime * Input.GetAxis("Horizontal"), vy, moveWalkSpeed * Time.deltaTime * Input.GetAxis("Vertical") );                                               
                                                                                                                                                                                                                
    if (look != Vector3.zero) { transform.Rotate(look); }                                                                                                                                                       
    if (move != Vector3.zero) { controller.Move(move); }                                                                                                                                                        
  }                                                                                                                                                                                                             
}