NullReferenceException .. problem with Camera.main.transform

I’m having problems on my First Person Controller, Unity is giving me the following error for line 34:

NullReferenceException: Object reference not set to an instance of an object. FirstPersonController.Update() (at Assets/FirstPersonController.cs:34)

This is the code for the FPC:

using UnityEngine;
using System.Collections;

[RequireComponent (typeof(CharacterController))]
public class FirstPersonController : MonoBehaviour {
	public float movementSpeed = 5.0f;
	public float mouseSensitivity = 5.0f;
	public float jumpSpeed = 20.0f;
	float verticalRotation = 0;
	public float upDownRange = 60.0f;
	float verticalVelocity = 0;
	CharacterController characterController;

	// Use this for initialization
	void Start () {
		Screen.lockCursor = true;
		characterController = GetComponent<CharacterController>();
	// Update is called once per frame
	void Update () {
		// Rotation
		float rotLeftRight = Input.GetAxis("Mouse X") * mouseSensitivity;
		transform.Rotate(0, rotLeftRight, 0);

		verticalRotation -= Input.GetAxis("Mouse Y") * mouseSensitivity;
		verticalRotation = Mathf.Clamp(verticalRotation, -upDownRange, upDownRange);
        //Problem here
        Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);

		// Movement
		float forwardSpeed = Input.GetAxis("Vertical") * movementSpeed;
		float sideSpeed = Input.GetAxis("Horizontal") * movementSpeed;
		verticalVelocity += Physics.gravity.y * Time.deltaTime;
		if( characterController.isGrounded && Input.GetButton("Jump") ) {
			verticalVelocity = jumpSpeed;
		Vector3 speed = new Vector3( sideSpeed, verticalVelocity, forwardSpeed );
		speed = transform.rotation * speed;
		characterController.Move( speed * Time.deltaTime );

Could it possibly be that I added my own camera and didn’t use the one that came with the original project? I did this because I deleted my original FPC & Player which contained the camera, so I created a new Player and Camera…

Thanks :slight_smile:

Yes this is because you added your own camera. The fix is to go to your camera and set the tag to ‘MainCamera’. Or you can modify your code to have a camera variable and use that variable instead of Camera.main.

Hi there, I am having the same problem here, except my camera is tagged MainCamera. I have renamed the camera object, does that make a difference? I know I am 4 years past the answer here, but hopefully one of you guys is still around! :slight_smile: