Areas System GUI v0.6

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

Areas System GUI v0.6

Сообщение Glooger 02 окт 2013, 20:06

Всем привет.

Работаю над своей игрушкой и начал со своей удобной (для меня как минимум) OnGUI обёртки. Исходники в копилку сайта, может кому пригодится.

То, что реализовано на данный, момент работает так.
  1. Создаются поля.
  2. К полям лепятся, например, ещё поля. И к тем и другим полям добавляются кнопки, спреи, ячейки и т.п.
  3. Все объекты расположены на своём слое:
    • Для полей 1го lvl глобальная система слоёв;
    • Для всех объектов любого поля - локальная система слоёв (внутри слоя родительского поля).
  4. Иерархическая система объектов и их слоёв позволяет быстро найти взаимодействующий с курсором элемент:
    • Сначала проверяются поля 1го lvl и если какое из них касается курсора, система останавливается на нем и проверяет его объекты;
    • Таким образом имея на экране пару тысяч кнопок, либо ячеек инвентаря затраты на нахождение нужного поля минимальны;
  5. Полю можно включить отображение, но выключить взаимодействие с курсором или наоборот (смотря что Вам нужно).


[V] Реализовано:

  1. Создание простого поля (SimpleArea) и прикрепления к нему таких объектов как:
    • Spray - спрей;
    • Button - прямоугольная кнопка;
    • ButtonRound - круглая кнопка;
    • OtherObject - объект с индивидуальной отрисовкой в указанном вами методе;
    • SimpleArea - простое поле (2 lvl);
    • CellAreaBackground/CellAreaTile - поле с ячейками;
    • HelpWindow - прямоугольный спрей, при наводе на который всплывает окошко с вашим текстом (подсказка).
  2. Создание поля с ячейками (CellArea) и система управления предметами этих ячеек, условно "Инвентаря":
    • имеется возможность перетаскивать предметы, делать стаки, брать пол стака (ПКМ), выкладывать один предмет из ската (ЛКМ+ПКМ);
    • каждое поле с ячейками имеет переменную itemPack, но т.к. это просто обёртка для гуи, следует установить свой класс для itemPack и подогнать AreaItemPackController.cs под свою систему инвентаря.
    • всплывающее окошко информации о предмете;
  3. Отрисовка полей:
    • автоматическая с указанными при создании объекта текстурами;
    • отключение отрисовки любого объекта поля или поля целиком;
  4. Объединение полей в группы:
    • Запоминание всех enable переменных всех полей и объектов в группе в данный момент и последующим использование. (например, отключить одной командой половину полей группы);
    • изменение положения всех полей группы на вектор корректировки;
  5. Скользящее перемещение:
    • перемещение одиночных полей и их объектов;
    • перемещение группы полей;

Описание методов давать не буду, в исходниках все XML комментарии на понятном русском (возможно с орфографическими ошибками :D ).

Синтаксис:
Используется csharp
    // Обязательное пространство имён:
    using ASGUIEngine;


Mini Demo.
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://gloo.clan.su/ASGUI_v0.6.2.unity3d&w=900&h=600&t=true&preview=1' height='"+(600+30)+"' width='900' frameborder='0' scrolling='no'></iframe>"); </script>

ChangeLog
Скрытый текст:
v0.3
  • добавление кнопок;
  • добавление объектов с индивидуальной отрисовкой;
  • локальная система слоёв;
v0.4
  • объединение полей в группы;
  • создание Статусов группы;
  • плавное перемещение (одиночных полей и групп);
v.0.5
  • система управления предметами инвентаря - манипуляции с предметами мышкой;
  • система управления предметами инвентаря - всплывающее окошко информации о предмете;
v.0.6
  • добавлено HelpWindow - прямоугольный спрей, при наводе на который всплывает окошко с вашим текстом (подсказка);
  • возможность добавлять к SimpleArea другой SimpleArea, как GUIObject и добавления к такому SimpleArea других объектов (все кроме SimpleArea и CellArea);
  • возможность добавлять к SimpleArea поля CellArea, как GUIObject;
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Glooger 03 окт 2013, 20:06, всего редактировалось 3 раз(а).
Аватара пользователя
Glooger
UNIт
 
Сообщения: 118
Зарегистрирован: 04 апр 2013, 08:40

Re: Areas System GUI v0.6

Сообщение Glooger 02 окт 2013, 20:09

И сразу поделюсь соображениями и надеюсь на небольшую помощь.
Вот подумал я вчера. 21 век на дворе... В игроиндустрии для качественной картинки повсеместно используются блюр, глоу и неон, а я всё 2d gui делаю! :D

Дак вот!
В данной обёртке тактильного контакта у полей с курсором нет (ибо голая геометрия). И пришла мысль сделать нечно подобное:
  1. Для каждого поля автоматом создавать камеру, которая будет делать текстуру данного поля.
  2. Сама текстура будет переноситься на плейн, который будет перед игроком.
  3. Учитывая положение и ротейшн плейна я думаю будет не сложно сделать проекцию курсора на плейн и так же, как и в 2d взаимодействовать с объектами гуи.

Что это даст?
  • Покачивание, например, этих плейнов при передвижении.
  • Возможность управлять прозрачностью полей.
  • Шейдеры.
  • Стильно, модно, молодёжно...

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

Собственно сабж. Насколько сложно реализовать два первых пункта? :-?
Последний раз редактировалось Glooger 22 окт 2013, 10:42, всего редактировалось 1 раз.
Аватара пользователя
Glooger
UNIт
 
Сообщения: 118
Зарегистрирован: 04 апр 2013, 08:40

Re: Areas System GUI v0.6

Сообщение Glooger 03 окт 2013, 15:13

Думаю имеет смысл задать вопрос в соответствующей ветке. http://unity3d.ru/distribution/viewtopic.php?f=105&t=19324
Аватара пользователя
Glooger
UNIт
 
Сообщения: 118
Зарегистрирован: 04 апр 2013, 08:40

Re: Areas System GUI v0.6

Сообщение Alastar 03 окт 2013, 18:37

Черт, это круто :-bd
Аватара пользователя
Alastar
UNIт
 
Сообщения: 93
Зарегистрирован: 24 май 2013, 11:34
Откуда: Нижневартовск
Skype: i_man_90
  • Сайт

Re: Areas System GUI v0.6

Сообщение Dragov 04 окт 2013, 07:54

ухты. спасибо.
развяжите полотенцы. иноверы изуверцы
Аватара пользователя
Dragov
UNIт
 
Сообщения: 66
Зарегистрирован: 12 янв 2011, 12:38
Откуда: UA


Вернуться в Исходники (Копилка)

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

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