Hey guys, I’m trying to write a script that spawns monsters randomly in Unity and apparently there’s something wrong with my code in line 43 that I can’t seem to figure out. Hope that you can help me:)))
This is the error:
NullReferenceException: Object reference not set to an instance of an object
MonsterSpawner+d__7.MoveNext () (at Assets/Scripts/MonsterSpawner.cs:43)
… and this is my code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MonsterSpawner : MonoBehaviour
{
[SerializeField]
private GameObject[] monsterReference;
private GameObject spawnedMonster;
[SerializeField]
private Transform leftPos, rightPos;
private int randomIndex;
private int randomSide;
// Start is called before the first frame update
void Start()
{
StartCoroutine(SpawnMonsters());
}
IEnumerator SpawnMonsters() {
while (true) {
yield return new WaitForSeconds(Random.Range(1, 5));
randomIndex = Random.Range(0, monsterReference.Length);
randomSide = Random.Range(0, 2);
spawnedMonster = Instantiate(monsterReference[randomIndex]);
// left side
if (randomSide == 0)
{
spawnedMonster.transform.position = leftPos.position;
spawnedMonster.GetComponent<Monster>().speed = Random.Range(4, 10);
}
else
{
// right side
spawnedMonster.transform.position = rightPos.position;
spawnedMonster.GetComponent<Monster>().speed = -Random.Range(4, 10);
spawnedMonster.transform.localScale = new Vector3(-1f, 1f, 1f);
}
} // while loop
}
} // class