кастомный Editor для зубчатого массива

Программирование на Юнити.

кастомный Editor для зубчатого массива

Сообщение DimaJoke 22 авг 2019, 14:13

Есть MonoBehaviour класс, в нём хранится двухмерный массив. Для этого класса я пишу кастомный Editor.
Задача: вывести этот массив. Все величины уже известны. Задаются из класса Эдитора.
Пробовал это:
Синтаксис:
Используется csharp
            subject.exps = new int[4][];

            for(int i = 0; i < 4; i++)
            {
                subject.exps[i] = new int[10];
                for(int j = 0; j < 10; j++)
                {
                    var prop = serializedObject.FindProperty(string.Format("exps.Array.data[{0}][{1}]", i, j));
                    EditorGUILayout.PropertyField(prop);
                }
            }
 

так же пробовал
Синтаксис:
Используется csharp
string.Format("exps.Array.data[{0}][{1}]", i, j)
 

поменять на
Синтаксис:
Используется csharp
string.Format("exps.Array.data[{0}].Array.data[{1}]", i, j)
 


но в строке
Синтаксис:
Используется csharp
EditorGUILayout.PropertyField(prop);
 

идёт ошибка "prop == null" (грубо говоря)
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: кастомный Editor для зубчатого массива

Сообщение DimaJoke 28 авг 2019, 22:56

Всем спасибо, я разобрался.
Ответ: зубчатые массивы не сериализуются, следовательно нет способа получить его в виде SrializedProperty. Пришлось сделать его публичным и через target получить это массив. В двойном цикле for перебираю этот массив и и с помощью EditorGUILayout.IntField() вывожу поля для ввода числа и привязываю их к соответствующим элементам массива.

Костыльно, но работает.
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8