FindWithTag error

I keep getting an error that says “Object reference not set to an instance of an object”
but when I look in inspector it shows that it found the object.

    public GameObject loadthing;
    public Sprite[] Em_sprite;

    void emVals()
    {
        GameObject loadthing = GameObject.FindWithTag("LoadObject");
        Em_sprite = new Sprite[2];
       
        if(loadthing != null){
        Em_sprite[0] = loadthing.GetComponent<Game_Data>().Gd_sprites[0];
        Em_sprite[1] = loadthing.GetComponent<Game_Data>().Gd_sprites[1];
        }
    }

Some notes on how to fix a NullReferenceException error in Unity3D

  • also known as: Unassigned Reference Exception
  • also known as: Missing Reference Exception

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.

Your null reference is probably Gd_sprites. It’s probably not getting the component. Break it down:

        if (loadthing != null){
            Game_Data data = loadthing.GetComponent<Game_Data>();
            if (data != null) {
                Em_sprite[0] = data.Gd_sprites[0];
                Em_sprite[1] = data.Gd_sprites[1];
            }
        }
    }