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…,