- Home /
The Object you want to instantiate is null!
I'm making a procedurally generated cave exploration game and it's supposed to generate another cave segment when I pass through a trigger. This has worked for 4 days now since I started the project but now after I pass through 30 triggers, the editor raises an error instead of Instantiating the next segment of the cave.
I've scoured the forums and help documents but none of it seems to work!
Thanks in advance.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CaveGenV7 : MonoBehaviour {
//Script for causing crystals to spawn only when (foo == 1)
int foo = 0;
public Transform SegmentSpawnpoint;
public GameObject Segment;
public Transform CrystalSpawnpoint1;
public Transform CrystalSpawnpoint2;
public Transform CrystalSpawnpoint3;
public Transform CrystalSpawnpoint4;
public Transform CrystalSpawnpoint5;
public Transform CrystalSpawnpoint6;
public Transform PickupSpawnpoint1;
public Transform PickupSpawnpoint2;
public Transform PickupSpawnpoint3;
public GameObject GCrystal;
public GameObject RCrystal;
public GameObject YCrystal;
public GameObject PCrystal;
public GameObject Bucket;
public GameObject Shovel;
public GameObject Pickaxe;
public GameObject Fossil;
public GameObject Artifact;
public GameObject Trigger;
private int randint;
private GameObject Choice;
void OnTriggerEnter () {
foo = (Random.Range (0, 4));
Debug.Log(foo);
if (foo == 3) {
Debug.Log ("Spawning Pickups...");
randint = (Random.Range (0, 6));
//For Spawnpoint #1
if (randint == 0) {
Choice = Bucket;
}
if (randint == 1) {
Choice = Shovel;
}
if (randint == 2) {
Choice = Pickaxe;
}
if (randint == 3) {
Choice = Fossil;
}
if (randint == 4) {
Choice = Artifact;
}
Instantiate (Choice, PickupSpawnpoint2.position, PickupSpawnpoint2.rotation);
randint = (Random.Range (0, 6));
//For Spawnpoint #2
if (randint == 0) {
Choice = Bucket;
}
if (randint == 1) {
Choice = Shovel;
}
if (randint == 2) {
Choice = Pickaxe;
}
if (randint == 3) {
Choice = Fossil;
}
if (randint == 4) {
Choice = Artifact;
}
Instantiate (Choice, PickupSpawnpoint2.position, PickupSpawnpoint2.rotation);
randint = (Random.Range (0, 6));
//For Spawnpoint #3
if (randint == 0) {
Choice = Bucket;
}
if (randint == 1) {
Choice = Shovel;
}
if (randint == 2) {
Choice = Pickaxe;
}
if (randint == 3) {
Choice = Fossil;
}
if (randint == 4) {
Choice = Artifact;
}
Instantiate (Choice, PickupSpawnpoint3.position, PickupSpawnpoint3.rotation);
}
//For Cystals
if (foo == 1) {
Debug.Log ("Spawning Crystals...");
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint1.position, CrystalSpawnpoint1.rotation);
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint2.position, CrystalSpawnpoint2.rotation);
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint3.position, CrystalSpawnpoint3.rotation);
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint4.position, CrystalSpawnpoint1.rotation);
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint5.position, CrystalSpawnpoint2.rotation);
randint = (Random.Range(0,4));
if (randint == 0){
Choice = GCrystal;
}
if (randint == 1){
Choice = RCrystal;
}
if (randint == 2){
Choice = YCrystal;
}
if (randint == 3){
Choice = PCrystal;
}
Instantiate (Choice, CrystalSpawnpoint6.position, CrystalSpawnpoint3.rotation);
}
print ("Spawning segment...");
Instantiate (Segment, SegmentSpawnpoint.position, SegmentSpawnpoint.rotation);
Destroy (Trigger);
print ("Destroyed Trigger!");
}
}
Answer by nesebra · Aug 03, 2017 at 08:14 AM
Check your`s "CaveGenV7" script in editor. Seems that game objects that should be instantiated are null. You should choose them from prefabs or game objects again. That`s may happen when u are edditing name of them in script or added that script to new game object.
Your answer
Follow this Question
Related Questions
Referencing a variable in another script possibly not working? 0 Answers
[SyncVar] GameObject Instantiate returns null. 1 Answer
How to detect if object is within another object? 0 Answers
Instantiating prefab from another script. Error, prefab is null. 1 Answer
Test if Abstract Class Exists 1 Answer