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!");
}
}