Cant assign gameObjects in editor?

I’ve made a editor GUI but I can’t assign gameObjects to the Object fields? I don’t get why???

This is my code:

#pragma strict

class MAP extends EditorWindow
{
   var Prefabs : GameObject[];
   var map : TextAsset;
    @MenuItem ("Window/MAP")
    static function Init () 
    {
        var window = ScriptableObject.CreateInstance.<MAP>();
        window.Show();
    }
   function OnGUI()
   {
    Prefabs = new GameObject[10];
    GUILayout.Label ("Prefabs", EditorStyles.boldLabel);   
    Prefabs[1] = EditorGUILayout.ObjectField(Prefabs[1], GameObject,false);
    Prefabs[2] = EditorGUILayout.ObjectField(Prefabs[2], GameObject,false);
    Prefabs[3] = EditorGUILayout.ObjectField(Prefabs[3], GameObject,false);
    Prefabs[4] = EditorGUILayout.ObjectField(Prefabs[4], GameObject,false);
    Prefabs[5] = EditorGUILayout.ObjectField(Prefabs[5], GameObject,false);
    Prefabs[6] = EditorGUILayout.ObjectField(Prefabs[6], GameObject,false);
    Prefabs[7] = EditorGUILayout.ObjectField(Prefabs[7], GameObject,false);
    Prefabs[8] = EditorGUILayout.ObjectField(Prefabs[8], GameObject,false);
    Prefabs[9] = EditorGUILayout.ObjectField(Prefabs[9], GameObject,false);
    GUILayout.Label ("MAP file", EditorStyles.boldLabel);
    map = EditorGUILayout.ObjectField(map, TextAsset);
    GUILayout.Label ("------------------------------------------", EditorStyles.boldLabel);
    if(GUI.Button(Rect(0,250, 250, 20),"ExecuteOrder66"))
     {
            //Kill the jedi!
     }
   }
}

Is there something wrong?

Prefabs = new GameObject[10];

should be in Start()

you create a new array every frame , when you select a gameobject , on the next call of “OnGui” your array is reinitialized and your selection lost

good luck

You sould use a for loop

for (int i = 0 ; i < Prefabs.Count ; i++){
 Prefabs[i] = EditorGUILayout.ObjectField(Prefabs[i], GameObject,false);
}

Ahh, thanks :smile: can’t believe I missed that…