NullReferenceException: Object reference not set to an instance of an object

Can somebody look at my rotation and see why its throwing a null reference please

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

public class FPS_Player_controller : MonoBehaviour
{

public float rotationSpeed = 1f;

//sesttings for cinemachine
public GameObject cinemachineTarget;
public float topClamp = 90f;
public float bottomClamp = -90f;

private float _cinemachineTargetPitch;

private float _rotationVelocity;

private Main_Controls _input;

private const float _threshold = 0.01f;

private void start()
{
_input = GetComponent<Main_Controls>();
}

private void LateUpdate()
{
CameraRotation();
}

private void CameraRotation()
{
if (_input.look.sqrMagnitude > _threshold)
{
_cinemachineTargetPitch += _input.look.y * rotationSpeed * Time.deltaTime;
_rotationVelocity = _input.look.x * rotationSpeed * Time.deltaTime;

_cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, bottomClamp, topClamp);

cinemachineTarget.transform.localRotation = Quaternion.Euler(_cinemachineTargetPitch, 0f, 0f);

transform.Rotate(Vector3.up * _rotationVelocity);

}
}

private static float ClampAngle(float angle, float minAngle, float maxAngle)
{
if (angle < -360f)
{
angle += 360f;
}
if (angle > 360f)
{
angle -= 360f;
}

return Mathf.Clamp(angle, minAngle, maxAngle);

}

}

That somebody would have to be you.

Fortunately it doesn’t even matter what you’re trying to do.

The answer is always the same… ALWAYS. It is the single most common error ever.

Don’t waste your life spinning around and round on this error. Instead, learn how to fix it fast… it’s EASY!!

Some notes on how to fix a NullReferenceException error in Unity3D

  • also known as: Unassigned Reference Exception
  • also known as: Missing Reference Exception
  • also known as: Object reference not set to an instance of an object

http://plbm.com/?p=221

The basic steps outlined above are:

  • Identify what is null
  • Identify why it is null
  • Fix that.

Expect to see this error a LOT. It’s easily the most common thing to do when working. Learn how to fix it rapidly. It’s easy. See the above link for more tips.

You need to figure out HOW that variable is supposed to get its initial value. There are many ways in Unity. In order of likelihood, it might be ONE of the following:

  • drag it in using the inspector
  • code inside this script initializes it
  • some OTHER external code initializes it
  • ? something else?

This is the kind of mindset and thinking process you need to bring to this problem:

https://discussions.unity.com/t/814091/4

Step by step, break it down, find the problem.

Here is a clean analogy of the actual underlying problem of a null reference exception:

https://discussions.unity.com/t/840647/7

Null reference never needs a forum post, but for future reference, if you post a code snippet, ALWAYS USE CODE TAGS:

How to use code tags: https://discussions.unity.com/t/481379

ALSO, if all you want is a bog standard FPS controller, this guy made a pretty great universal one. It is much more full-featured:

https://discussions.unity.com/t/855344

That one has run, walk, jump, slide, crouch… it’s crazy-nutty!!

Capitalisation matters. start() is not the same as Start()
Next time, please post the full error message as that will have the line number of the error, and also post your script using the code tags so that we can see line numbers and it is better formatting.
If you can do those things they will help us to help you.