Code (CSharp): using UnityEngine; using System.Collections; [RequireComponent(typeof(PlayerMotor))] public class PlayerController : MonoBehaviour { [SerializeField] private float speed = 5f; private PlayerMotor motor; void start () { motor = GetComponent<PlayerMotor>(); } void Update () { /*Calculate movement velocity as a 3D vector*/ float _xMov = Input.GetAxisRaw("Horizontal"); float _zMov = Input.GetAxisRaw("Vertical"); Vector3 _movHorizontal = transform.right * _xMov; Vector3 _movVertical = transform.forward * _zMov; /*Final movement vector*/ Vector3 _velocity = (_movHorizontal + _movVertical).normalized * speed; /*Apply movement*/ motor.Move(_velocity); } } And The Error Says : NullReferenceException: Object reference not set to an instance of an object PlayerController.Update () (at Assets/PlayerController.cs:29) Pls Help Me
"motor" will always be null, because the "start" method is never called by Unity, due to a typo. You wrote "start" in lower case, but it must "Start" instead.