space shooter tutorial issue "Ending the game" unity 2018.2 b
Hello I'm having a with the space shooter tutorial "ending the game" step. i had changed the original code a bit but that shouldn't affect what i'm doing right now.
Error
NullReferenceException: Object reference not set to an instance of an object DestroyByContact.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/Destroyer/DestroyByContact.cs:33)
Code of DesctoryByContace
using System.Collections; using System.Collections.Generic; using UnityEngine;
 
               public class DestroyByContact : MonoBehaviour { public GameObject explosion; public GameObject playerExplosion; public int scoreValue; private GameController gameController;
 
                void Start()
 {
     GameObject gameControllerObject = GameObject.FindWithTag("GameController");
     if (gameControllerObject != null)
     {
         gameController = gameControllerObject.GetComponent<GameController>();
     }
     if (gameController = null)
     {
         Debug.Log("Cannot find 'GameController' Script!");
     }
 }
 void OnTriggerEnter(Collider other){
     if (other.tag == "Boundary")
     {
         return;
     }
     Instantiate (explosion, transform.position, transform.rotation);
     if (other.tag == "Player")
     {
         Instantiate (playerExplosion, other.transform.position, other.transform.rotation);
         gameController.Gameover();
     }
     Scores.score += scoreValue;
     Destroy(other.gameObject);
     Destroy(gameObject);
 }
  
               }
Code for GameController
using System.Collections; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement;
 
               public class GameController : MonoBehaviour {
 
                public GameObject hazards;
 public Vector3 spawnValues;
 public float hazardsCount;
 public float startWait;
 public float spawnWait;
 public float waveWait;
 public Text restartText;
 public Text gameverText;
 private bool restart;
 private bool gameover;
 void Awake()
 {
     restart = false;
     gameover = false;
     restartText.text = "";
     gameverText.text = "";
 }
 void Start()
 {
     
     StartCoroutine(SpawnWaves());
 }
 void Update()
 {
     if (restart)
     {
         if (Input.GetKeyDown(KeyCode.R))
         {
             SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
         }
     }
 }
 IEnumerator SpawnWaves()
 {
     while (true)
     {
         for (int i = 0; i < hazardsCount; i++)
         {
             yield return new WaitForSeconds(startWait);
             Vector3 spawnPosition = new Vector3(Random.Range(-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z);
             Quaternion spawnRotation = Quaternion.identity;
             Instantiate(hazards, spawnPosition, spawnRotation);
             yield return new WaitForSeconds(spawnWait);
         }
         yield return new WaitForSeconds(waveWait);
         if (gameover)
         {
             restartText.text = "Press 'R' to restart game!";
             restart = true;
             break;
         }
     }
 }
 public void Gameover()
 {
     gameverText.text = "Game Over!";
     gameover = true;
 }
  
               } 
I don't seem to be able to find the error .. please help me out..,
Answer by labreiz · Jul 04, 2018 at 06:57 AM
Wooohhooo ... i found my error.. if any of you guys get stuck.. you should look for really small mistakes in the code like the one i had
if (gameController = null) 
in DestroyByContact Script i changed it to
if (gameController == null)
and it all went good.. the code worked..
i have solved space shooter "Ending the game" step issue that i encountered..
Your answer
 
             Follow this Question
Related Questions
Tanks! tutorial movament problem,Tanks tutorial problem with moving 0 Answers
How to reference script in unity (C#) ? 0 Answers
How to assign Instantiated object through script? 1 Answer
My script does not work each time i enter Unity unless i add it to the object again. any solutions? 0 Answers
How do i put "Wasted!" after respawn? 0 Answers