@SkyCrusher

Почему Unity не прикрепляет геймобжект в кастомном поле инспектора?

В файле класса, для которого пишется скрипт едитора объявлен двумерный массив геймобжектов:
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, хотя и отображает список геймобжектов проекта, прикреплять и "запоминать", что ты что-то в него перетащил, не хочет.
5f15d83e2674b060777159.png
Как это пофиксить?
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы