Vector3 array causing nullreferenceException
I have a series of Mazes that I want to move around at certain intervals, but I also want them to be able to return to where they first started. I am trying to use a for loop to set the position of the starting position for each of the mazes, but when I do, it just sets a "NullReferenceException" error. Here is my code so far:
public GameObject[] Mazes;
private Vector3[] MazeStart;
void Start {
for (int i = 0; i < Mazes.Length; i++) {
MazeStart[i] = Mazes[i].transform.position;
}
}
I have a similar code for my character that is as follows:
private Vector3 spawn;
void Start(){
spawn = transform.position;
}
This code works in the same way I want it to work for the Mazes, but for some reason, it just won't work for the Mazes. The Mazes Game Objects have been set as well.
Answer by phxvyper · Dec 01, 2016 at 01:36 AM
You have to initialize the array before you can populate items in the array, like so:
void Start() {
// initialize the array
MazeStart = new Vector3[Mazes.Length];
// populate the array
for (int i = 0;i < MazeStart.Length; i++) {
MazeStart[i] = Mazes[i].transform.position
}
}
However, I recommend you use Linq instead:
using System.Linq;
void Start() {
MazeStart = Mazes.Select(maze => maze.transform.position).ToArray();
}
Your answer

Follow this Question
Related Questions
NullReferenceException while raycasting? 0 Answers
Null Reference Exception anytime scene is reloaded? 1 Answer
CAR ENTER EXIT 1 Answer
Why am I getting a null reference error? 1 Answer
NullReferenceException after save the Scene and Project 0 Answers