Страница 1 из 1

Easy 2D Array - легкая работа с двумерными массивами.

СообщениеДобавлено: 13 июл 2013, 21:29
Krubbs
Этот пак не пустили на ассет стор со словами "польза ... сомнительна. Согласно пункту ... мы имеем право отказать в публикации пака. Идите в жопу с вашим паком". [unity 3D] Странные. Ведь мне это нужно было, я это сделал и просто решил поделиться с людьми.

Итак, передо мною была задача: поступивший в юнити двумерный массив строк оперативно редактировать с целью тестирования приложения.
Собственно, у меня получившийся результат выглядел вот так:
Изображение

На текущий момент главная проблема в работе с двумерными массивами в юнити - то, что юнити их не сериализует. И даже банально не показывает в инспекторе - и это я не про какой нибудь Dictionary<string , string>, а вообще про обычный string[,]. Приходится выкручиваться - кто то выдумывает геморрой с массивом классов, другие пишут десятки строк кода для определенного скрипта, дабы сделать отображение в инспекторе..

Мое решение отличается от всех этих примеров тем, что оно простое. Все, что от вас требуется - просто объявить двумерный массив string[,] в скрипте, и указать его в моем окне. Все остальное произойдет самостоятельно и без вашего участия. Правда вот, чтобы все заработало, придется немного поковыряться в окне.

Для этого есть документация, написанная моим кривым английским, которую можно найти вот тут: http://riseofmagic.ru/Easy%202D%20Array%200,93%20Documentation.pdf
Особенно обратите внимание на вот эту http://riseofmagic.ru/Help.gif гифку, она понятно показывает как указать скрипт моему тулу.


[V] Вся работа состоит из работы с кнопочками менюшки.
[V] С изменением размера массива вы легко разберетесь, соответствующие кнопки есть в окне и вы сразу их увидите.
[V] Напомню, юнити не сериализует двумерные массивы - а это значит, что после нажатия на кнопку "Play", массив потеряет все данные и сбросится к значению null. Для того, чтобы этого не происходило, я позволил сохранять данные в массиве - кнопки Save и Load вы также легко найдете в окне тула.
[V] Чтобы загрузка сохрененного (!) массива после запуска игры происходила автоматически, просто тыкните галочку "Автоматически загружать массив...". А для загрузки массива после выхода из игры, есть и соответствующая этой функции галочка.
[V] Однако, чтобы сохраненный массив автоматически загружался в игре после компиляции игры - обратите внимание на меню "Show help?". Там будет показана строка, которую вы должны добавить в свой скрипт для загрузки массива с помощью статического метода.

В общем, лично мне этот инструмент очень и очень пригодился. Разработка пошла быстрее, ведь теперь я легко могу использовать двумерные массивы и видеть их визуально в виде таблички - это очень, ОЧЕНЬ удобно.

Если этот пак вам понравится, и вы хотели бы увидеть его развитие - не забудьте это написать в комментариях. С удовольствием бы поработал над этим Easy 2D Array и добавил поддержку других типов массивов - к примеру, bool[,], float[,], int[,] и конечно же Dictionary <string, string>.

Re: Easy 2D Array - легкая работа с двумерными массивами.

СообщениеДобавлено: 14 июл 2013, 18:26
pod4444
юнити не сериализует двумерные массивы - а это значит, что после нажатия на кнопку "Play", массив потеряет все данные и сбросится к значению null. Для того, чтобы этого не происходило, я позволил сохранять данные в массиве - кнопки Save и Load вы также легко найдете в окне тула.


Эти кнопки только лишняя трата чужого времени имхо, все должно быть максимально автоматизировано.
Переход в игровой режим можно отловить, значит можно и автоматически сохранить.
А загружать просто по вставке скрипта в окно.

Re: Easy 2D Array - легкая работа с двумерными массивами.

СообщениеДобавлено: 14 июл 2013, 18:44
Krubbs
pod4444 писал(а):Эти кнопки только лишняя трата чужого времени имхо, все должно быть максимально автоматизировано.
Переход в игровой режим можно отловить, значит можно и автоматически сохранить.
А загружать просто по вставке скрипта в окно.


Не каждому нужен такой функционал - потому и вынесено отдельно, только для нуждающихся. У меня массив вообще грузится из БД и автоматически заполняет все поля. Сохранение и загрузка мне тупо не нужны, ровно как и автоматическая загрузка массива после запуска игры.

Так что только в случае, если действительно что-то нужно, можно и потратить сотню-другую миллисекунд своего времени, чтобы поставить галочку или нажать на кнопочку :)
Соглашусь, что это лишний гемор - но некоторым лишняя автоматизация может только навредить (например мне). [-x

Re: Easy 2D Array - легкая работа с двумерными массивами.

СообщениеДобавлено: 14 июл 2013, 20:10
Tolking
Нужная штука! Спасибо за работу.

Re: Easy 2D Array - легкая работа с двумерными массивами.

СообщениеДобавлено: 30 июл 2013, 09:58
Vice
(3A4OT) Спасибо! Хотелось бы увидеть развитие плагина.