- Home /
Error NullReferenceException: Object reference not set to an instance of an object
Hi
It was working, then this error just came out of nowhere. Don't understand whats going on.
Its a top down shooter and the idea being that it aims and shoots using the curser.
Can anyone offer any suggestions please. Really am stuck with this one. :)
 public class PlayerController : MonoBehaviour 
 {
     //handling
     public float rotationSpeed = 1000;
     public float speed = 20;
     public float fireRate;
 
     private float nextFire;
 
 
 
     //system
     private Quaternion targetRotation; //stores direction
     public PlayerBoundary boundary;
 
 
     //components
     private CharacterController controller;
     private Camera cam;
 
     public GameObject shot;
     public Transform shotSpawn;
 
 
     
     
     void Start()
     {
         controller = GetComponent<CharacterController> ();
         cam = Camera.main;
         
     }
     
 
     void Update()
     {
     ControlMouse ();
           
         if (Input.GetButton ("Shoot") && Time.time > nextFire) 
         {
             nextFire = Time.time + fireRate;
             Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
 
             audio.Play ();
 
 
         }
     }
 
 
     
 
 
 
     void ControlMouse()
     {
 
 
 
         //set up direction in input variabe
         Vector3 input = new Vector3(Input.GetAxisRaw("Horizontal"),0, Input.GetAxisRaw("Vertical")); 
 
         //Sets up mouse position
         Vector3 mousePos = Input.mousePosition;
         mousePos = cam.ScreenToWorldPoint (new Vector3 (mousePos.x, mousePos.y, cam.transform.position.y - transform.position.y));
         shotSpawn.LookAt(mousePos);
 
 
 
         if (input != Vector3.zero) //fingers taken off controls, player doesnt reset to defaul position
         {
             targetRotation = Quaternion.LookRotation(input); //rotates player in the way of the direction
             transform.eulerAngles = Vector3.up * Mathf.MoveTowardsAngle(transform.eulerAngles.y, targetRotation.eulerAngles.y, rotationSpeed * Time.deltaTime);
         }
 
         //Controls Movement 
         Vector3 motion = input;
         motion *= (Mathf.Abs (input.x) == 1 && Mathf.Abs (input.z) == 1) ? .7f : 1; //moving diagonally doesnt travel at twice the speed
 
         controller.Move (motion * speed * Time.deltaTime);
 
 
 
     }
 
 
 
 
 
 }
Please indicate which line is generating the error. I see several places that have the potential..
Answer by Loius · Jul 17, 2014 at 09:57 PM
this is a duplicate question. did you search for your error message? i've answered this the same way several times now, and that's just me.
null reference exception: "something before a . is null".
Line 66 (of 65-66, assuming your line numbers in this code are correct), only has one thing before a . that can be null, and that is 'cam'. Since you set cam = Camera.main in start, either line 66 is called before start (during awake), or you have no camera that is tagged "MainCamera".
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                