2D Array и CustomEditor

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

2D Array и CustomEditor

Сообщение Unitmen 19 апр 2014, 19:22

Собственно проблема в том, что serializedObject.ApplyModifiedProperties() не хочет применять изменения к Matrix.Elements.
В инспекторе все работает отлично.
Синтаксис:
Используется csharp
EditorUtility.SetDirty(matrix);

срабатывает как надо.
Синтаксис:
Используется csharp
Debug.Log(matrix.Elements[0,0]);

Выводит изменения в первом элементе.
Синтаксис:
Используется csharp
if (serializedObject.ApplyModifiedProperties()) Debug.Log("Вернул True");

не срабатывает...
То-ли у меня руки кривые... [curved_hands]

Синтаксис:
Используется csharp
using System;
using UnityEngine;
[Serializable]
public class Matrix : MonoBehaviour
{
    public int[,] Elements = new int[6,6];
}


Синтаксис:
Используется csharp
using UnityEditor;
using UnityEngine;
 [CustomEditor(typeof(Matrix))]
 public class MatrixEditor : Editor
 {
     private Matrix matrix;

     void Awake()
     {
         matrix = (Matrix)target;
     }

     public override void OnInspectorGUI()
     {
         serializedObject.Update();

         for (int i = 0; i < matrix.Elements.GetLength(0); i++)
         {
             EditorGUILayout.BeginHorizontal();
             for (int j = 0; j < matrix.Elements.GetLength(1); j++)
             {
                 matrix.Elements[i, j] = EditorGUILayout.IntField(matrix.Elements[i, j]);
             }
             EditorGUILayout.EndHorizontal();
         }
         if (GUI.changed)
         {                
             EditorUtility.SetDirty(matrix);
             Debug.Log(matrix.Elements[0,0]);
         }
         if (serializedObject.ApplyModifiedProperties()) Debug.Log("Вернул True");
     }
 }
Аватара пользователя
Unitmen
UNIт
 
Сообщения: 122
Зарегистрирован: 10 авг 2013, 00:55

Re: 2D Array и CustomEditor

Сообщение Unitmen 19 апр 2014, 19:54

Еще момент, сейчас все работает на костылях, сохраняю матрицу в текстовой файл, а потом гружу при старте игры в объект, но хочется обойтись без костылей в виде текстовых файлов, вложенных классов и прочей лабуды, ибо в реальном скрипте массив не из int...
Аватара пользователя
Unitmen
UNIт
 
Сообщения: 122
Зарегистрирован: 10 авг 2013, 00:55


Вернуться в Editor

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

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