transform.position is null

I want to give an Attack-Object an Array of waypoints so it knows where to g. But when i try to get the positions of the waypoint-objects it throws:
NullReferenceException: Object reference not set to an instance of an object Spawner.Start () (at Assets/Spawner.cs:17) using System.Collections; using System.Collections.Generic; using UnityEngine;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Spawner : MonoBehaviour
{
     [SerializeField]
     private GameObject[] waypointObjects;
     private int wave;
     private Vector2[] waypointVectors;
     private void Start()
     {
         for (int i = 0; i < waypointObjects.Length; i++)
         {
             waypointVectors[i] = waypointObjects[i].transform.position;
         }
         GameObject Attack1 = new GameObject("Attack Nr. " + 1);
         Attack1.AddComponent<AttackBehavior>().Initialization(9, waypointVectors, false);
     }
}

The waypoint objects are definitly attached this script.

The error happens in line 18 in this case, copied the wrong versionof the script.

Line 10 you have an array of waypointVectors declared but never initialized. So waypointVectors is null. You should initialize it using the size of waypointObjects before you start trying to set it’s values.

1 Like

That’s as may be, but something is null.

The answer is always the same… ALWAYS. It is the single most common error ever.

Don’t waste your life spinning around and round on this error. Instead, learn how to fix it fast… it’s EASY!!

Some notes on how to fix a NullReferenceException error in Unity3D

  • also known as: Unassigned Reference Exception
  • also known as: Missing Reference Exception
  • also known as: Object reference not set to an instance of an object

http://plbm.com/?p=221

The basic steps outlined above are:

  • Identify what is null
  • Identify why it is null
  • Fix that.

Expect to see this error a LOT. It’s easily the most common thing to do when working. Learn how to fix it rapidly. It’s easy. See the above link for more tips.

You need to figure out HOW that variable is supposed to get its initial value. There are many ways in Unity. In order of likelihood, it might be ONE of the following:

  • drag it in using the inspector
  • code inside this script initializes it
  • some OTHER external code initializes it
  • ? something else?

This is the kind of mindset and thinking process you need to bring to this problem:

https://discussions.unity.com/t/814091/4

Step by step, break it down, find the problem.

Here is a clean analogy of the actual underlying problem of a null reference exception:

https://discussions.unity.com/t/840647/7