В файле класса, для которого пишется скрипт едитора объявлен двумерный массив геймобжектов:
public GameObject[][] blocks;
Сам скрипт для едитора
using GameLayer.GameManagers;
using UnityEditor;
using UnityEngine;
namespace Editor
{
[CustomEditor(typeof(LevelGameManager))]
public class LevelGameManagerEditor : UnityEditor.Editor
{
private int rows, columns;
public override void OnInspectorGUI()
{
DrawDefaultInspector();
EditorGUILayout.Space(30);
LevelGameManager myTarget = target as LevelGameManager;
EditorGUILayout.LabelField("Blocks");
rows = EditorGUILayout.IntField("Rows count", rows);
columns = EditorGUILayout.IntField("Columns count", columns);
myTarget.blocks = new GameObject[rows][];
for (int i = 0; i < rows; i++)
{
EditorGUILayout.LabelField($"Row {i + 1}");
myTarget.blocks[i] = new GameObject[columns];
for(int j = 0; j < columns; j++)
{
myTarget.blocks[i][j] = (GameObject) EditorGUILayout.ObjectField($"Column {j + 1}", myTarget.blocks[i][j], typeof(GameObject), true);
}
}
}
}
}
Проблема в том, что Unity, хотя и отображает список геймобжектов проекта, прикреплять и "запоминать", что ты что-то в него перетащил, не хочет.
Как это пофиксить?