Custom editor (Решено)

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Custom editor (Решено)

Сообщение AMD 19 апр 2013, 21:52

Доброго времени суток, уважаемые форумчане.

Сразу к делу, у меня есть скрипт кастомного инспектора, так вот столкнулся с такой занятной проблемкой, по какой-то не ясной причине не удается "добраться" (а точнее получить) значения массива массивов (bool[][]), одномерный массив удается получить, а вот такой нет.

Синтаксис:
Используется csharp

    public void OnEnable()
    {
        subject = target as DeterminingBuilding;

        ResourcesName = subject.ResourcesName;
        ResourcesAmount = subject.ResourcesAmount;
     }
 


Безусловно в скрипте на который делается кастомный инспектор, они имеются и имют уровень доступа публичный

Собственно вопрос, действительно нельзя получить значения или я не правильно делаю?

Ах, да, всем заранее спасибо!


Решение в конце.
Последний раз редактировалось AMD 20 апр 2013, 20:50, всего редактировалось 1 раз.
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Custom editor

Сообщение seaman 19 апр 2013, 22:02

То ли я чего не пойму...
А как приведенный скрипт связан с заданным вопросом?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Custom editor

Сообщение AMD 19 апр 2013, 22:05

С помощью вот этого кусочка получаю значения.

Все остальные получаемые таким же способом успешно проходят юнит тесты этот нет.

Дело в том что, строчка дебага говорит, это эти массивы объявлены, но не заданы. (подчеркну, остальное полученное таким же способом успешно выводится)
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва

Re: Custom editor

Сообщение Nicloay 20 апр 2013, 07:17

Чет я не заметил что ты используешь target. В едиторе доступ к пропертям идет обычно через него http://docs.unity3d.com/Documentation/S ... arget.html



Upd: ступил. Сорри :)
Последний раз редактировалось Nicloay 20 апр 2013, 20:38, всего редактировалось 1 раз.
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: Custom editor

Сообщение AndreyMust19 20 апр 2013, 10:23

Получить можно только то, что сериализуется. Если вы сохраните в несериализуемый массив, то при следующем запуске [unity 3D] он все равно пропадет. По-моему двумерные и разреженные массивы движок не сериализует.
Если вам нужен массив битов, то лучше создайте класс "BitArray" или "BitMatrix" (в сети наверняка нечто подобное есть). bool в представлении C# это тот же int, а с битовым массивом вы здорово сэкономите память, особенно это важно для передачи данных по сети.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Custom editor

Сообщение AMD 20 апр 2013, 20:49

Решено костыльным способом, через создание класса не наследованного, в нем создается либо нужный массив, либо нужные переменные, класс сериализуется и создается в нужном месте как массив.
Либо создается еще один класс в котором указывается массив предыдущего класса.

Т.е. принцип матрешки

Синтаксис:
Используется csharp
[Serializable]
public class ResourcesPoint
{
    public string Names;
    public int Amounts;
}

[Serializable]
public class StageSerialized
{
    public string Name;
    public string Info;

    public ResourcesPoint[]Resources;
}


И где-то в нужном скрипте:

Синтаксис:
Используется csharp
public StageSerialized[] Stages;
Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему.
AMD
UNITрон
 
Сообщения: 349
Зарегистрирован: 16 июн 2012, 14:33
Откуда: Москва


Вернуться в Почемучка

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

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