Инвентарь 2.0 [beta version]

Проект более продвинутого инвентаря персонажа, нежели предыдущий, был написан с нуля и полностью переделан. Перестановкой пары строк, дело не обошлось, поэтому если вы ранее, использовали наш прошлый проект по теме, рекомендуем ознакомиться с этой версией. Ключевые изменения: теперь, иконка может занимать больше, чем одну клетку; одинаковые иконки, группируются, ведется подсчет; автоматическое сохранение в файл. Инвентарь более не работает с префабами объектов, которые мы перетаскиваем в него, а только с иконками. Вместо этого, улучшено взаимодействие с инвентарем, что позволит без проблем использовать предметы по идентификатору.


В силу объемности проекта, он доступен только для скачивания, ключевые комментарии присутствуют в коде. Остальное (иерархия UI, сборка шаблонов и т.п.) из разряда, лучше один раз увидеть, чем...

Здесь мы уточним некоторые моменты.

Во-первых, возможности:

  • Удерживая левую кнопки мыши, можно перетаскивать предметы в инвентарь или перемещать иконки внутри него.
  • Когда закидываем предмет в инвентарь и там уже есть такой, то произойдет добавление к уже существующему. Одинаковые предметы можно закидывать не целясь в клетки, они автоматически добавляться.
  • Если курсор в поле инвентаря, то он не будет искать объекты, для добавления.
  • При попытке закинуть одну иконку на другую, она вернется на прежнее место.
  • Если сбросить иконку вне поля инвентаря, данный предмет будет удален.
  • После нажатия клавиши "закрыть инвентарь", произойдет его сохранение в отдельный файл. После повторного запуска приложения, происходит загрузка данных и восстановление состояния.

Правильная сборка шаблона иконки:

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

Рассмотрим пример размера иконки 1х3.

Инвентарь 2.0 [beta version]

Для такого шаблона, размер спрайта рассчитывается следующим образом. Если картинка по ширине 100, то по высоте должна быть 300. Обозначение 1х3 так же означает, что иконка по горизонтали будет занимать одну клетку, а по вертикали соответственно три.

Так же нужно заранее определиться с размером одной клетки (опция скрипта), если допустим 50.


Из этого следует, что размер шаблона иконки 1х3, будет 50х150.

Родительский объект шаблона, обычный Image. Дочерние объекты которого, контрольные точки по размеру клетки.


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

В случаи, когда иконка и по ширине и по высоте, занимает больше, чем одну клетку, например:


То здесь порядок такой, чтобы первая и последняя точка массива, образовывали диагональ.

Подобные манипуляции с шаблонами нужны, для нормального позиционирования внутри инвентаря и не только. Класс шаблона хранит информацию о объекте, их количестве и т.п. Контрольные точки нужны так же, для поиска свободных/занятых клеток.

В целом, инвентарь работает нормально, тем не менее, проект на стадии бета. Плюс, есть смысл и дальше улучшать код, на усмотрение.

Скачать проект:

У вас нет доступа!
Улучшенная версия https://null-code.ru/project/180-prodvinutyy-inventar-personazha.html
Тестировалось на: Unity 5.4.0

Комментариев 1

Офлайн
Golden50k 9 августа 2016
Спасибо , вы лучшие!
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Дешевый хостинг
  • Яндекс.Метрика