Проект представляет собой систему инвентаря, реализованную в Unity в соответствии с техническим заданием.
Инвентарь поддерживает работу с несколькими типами предметов, перетаскивание (drag & drop), использование, удаление, сортировку и отображение информации о предметах.
- Сетка ячеек фиксированного размера.
- Поддержка разных типов предметов
- Возможность хранить стекируемые предметы и нестекируемые.
- Поддержка служебных ячеек.
- Создаются через ScriptableObject, что позволяет легко добавлять новые типы.
- Каждый предмет содержит:
- Название
- Иконку
- Описание
- Тип (
ItemType— enum)
- Drag & Drop — перетаскивание между слотами, объединение стеков.
- Double Click — использование предмета.
- Right Click — удаление предмета из инвентаря.
- Tooltip при наведении — отображение описания предмета.
- Сортировка по типу, количеству или имени.
Код разделён на сборки по ответственностям:
| Компонент | Ответственность |
|---|---|
| Core | Содержит интерфейсы и базовые классы |
| Game | Содержит конкретные реализации |
| Controls | Содержит заменяемые реализации Core элементов и так же дополнительные сервисы управления |
| UI | Содержит UI элементы отображения |
| Test | Содержит нефункциональные реализации, используемые в качестве "затычек" |
- Unity version: 2022.3.62f2
- Язык: C#
- Использованы стандартные средства Unity, а так же дополнительные инструменты: Zenject, UniTask, TMPro.
- Открой проект в Unity.
- Открой сцену
Assets/Game/Scenes/MainScene.unity. - Запусти сцену — инвентарь будет автоматически заполнен некоторыми предметами через
TestItemsInitializer. - Протестируй drag & drop, двойной клик, правый клик и сортировку.
- GameData: содержит определения игровых предметов
- Objects/Sprites: содержит спрайты иконок предметов и элементов UI
- Prefabs: содержит готовые префабы View элементов отображения инвентаря
- Scenes: содержит подготовленную сцену Unity
- Scripts: содержит файлы с кодом. Подробнее см. пункт "Архитектура"
Подробнее об авторских правах - см. файл LICENCE