- Home /
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 :)
Answer by robertbu · Feb 24, 2014 at 02:49 AM
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 robert, I get this error in my game BUILD when my second level loads up the developer's console says "NullReferenceException" and doesn't allow me to look up and down but I can do everything else. I checked my camera is set to main and as far as I can tell there are no other cameras.. Idk what to do.. please help.
Answer by wilfy · May 08, 2018 at 06:04 PM
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! :)
ANSWER: Add a public Camera playerCam;
Drag the camera into the variable in the inspector, when it appears. Then as answered by robertbu, replace camera.main with playerCam.