Как создать инвентарь в Unity?
Следуя этому алгоритму, вы превратите вашу сложную задачу в несколько простых. Повторяйте этот алгоритм для простых задач, пока не дойдёте до такого состояния, когда всё будет просто и понятно. Далее просто реализуйте всё.
p.s.
Или купите в asset store, либо закажите на фрилансе.
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Чтобы можно было перетаскивать своих ?ГЕРОЕВ? по нему, вот как то так должно выглядеть
you are normal? Чувак инвентарь — єто обем переносимого веса или инвентаря героем, а не наоборот. Кавказкую пленницу пересмотрелся? Если єто доска для перемещения по ней героев типо настолки то так и пиши. Там уже возмножны другие функции.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Unity разработчик
Есть хороший урок
https://www.youtube.com/watch?v=Y-OpWcRhgJ0&t
Если модифицировать самому получить довольно хорошо
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Разработка игр
Как ограничить вращение объектов в Unity?
- 1 подписчик
- вчера
- 11 просмотров
- C#
- +4 ещё
Как правильно настроить считывание клавиш?
- 2 подписчика
- 26 апр.
- 239 просмотров
Как сделать инвентарь в Unity. Уроки Unity для детей и подростков
Материал подготовлен школой программирования для детей «Пиксель». Мы учим ребят 5-17 лет создавать игры и анимацию, проектировать и разрабатывать сайты, делать веб-дизайн и др. Приходите к нам учиться разработке игр в Unity3D.
Как создать инвентарь в 3D проекте UNITY?
В этой статье мы рассмотрим процесс создания простого инвентаря в 3D проекте и настройки его графического отображения. В качестве примера мы будем использовать бесплатные ассеты Unity.
Для Вашего удобства мы будем описывать последовательность шагов текстом и демонстрировать эти шаги в кратком видео. И так, приступим.
Нам понадобятся такие ассеты:
- RPG inventory icon
- Third Person Controller – Basic Locomotion FREE
Подготовка проекта
- Импортируйте ассеты, перечисленные выше.
- Создайте куб (в окне иерархии нажмите “+” ->3D object ->Cube):
- Переименуйте его в “Ground”, и увеличьте Scale по x и y:
- Создайте персонажа (Invector -> Basic Locomotion -> Create Basic Controller)
- Откроется окно создание персонажа, выберите в нем VBOT2.0_Custom и Invecor@BasicLocomotion и нажмите “Create”
- Поместите полученного персонажа над землей, запустите игру и убедитесь, что всё работает
Логика создания инвентаря
- Создайте скрипт “Inventory” в Папке “MonoBehaviour”
2. Создайте скрипт “Item” в папке “Scriptable objects”
3. Открываем скрипт “Item”, все предметы, которые мы будем создавать будут наследоваться от этого класса. Он будет наследоваться от ScriptableObject и содержать несколько полей (вы можете добавить какие-то поля по своему желанию):
4. Открываем скрипт “Inventory”, он будет прикрепляться к игроку и содержать список предметов. Создаем класс InventorySlot, он будет содержать предмет и количество экземпляров этого предмета в инвентаре. Определяем функцию добавления предмета в инвентарь, она сначала будет проверять, есть ли уже предмет с таким ID в инвентаре, в случае, если есть увеличивать их количество, а если нет – добавлять новый.
Собирание предметов
- Создадим кубик, а так же для наглядности сделаем его зеленым. Для этого создадим папку “Materials”, там создадим новый материал и поменяем его цвет (Alberdo)
- На кубике создадим коллайдер, сделаем его триггером, он будет определять, достаточно ли близко игрок подошёл к предмету, чтобы его поднять
- Создадим и добавим на него скрипт “CollectableItem”



UI инвентаря
- Создаём Canvas
- Переходим в 2D режим
- Создаем Panel
- Создадим 4 “Image” и сделаем так, чтоб каждый из них занимал четверть панели.
6. Создадим событие, которое будет вызываться при добавлении предмета в инвентарь
7. На панели создадим скрипт “Inventory UI”, он будет отвечать за графическое отображение инвентаря
8. Этот скрипт будет содержать метод UpdateUI, который будет принимать инвентарь и устанавливать изображения предметов. Так же необходимо добавить методы получения предмета в Inventory
9. Положим все Image в список
10. Теперь нам необходимо вызывать этот метод всякий раз, когда обновляется содержимое инвентаря, как раз для этого мы и создали событие OnInventoryChanged. Добавляем вызов нашего метода в это событие.
11. Делаем цвета всех Image прозрачными
12. Запускаем игру и убеждаемся, что подобранный предмет отображается в инвентаре
13. Осталось только сделать отображение количества предметов. Для этого к каждой картинке добавляем текстовое поле. Дополним скрипт UpdateUI, добавив туда отображение количества предметов, а так же делая пустые слоты прозрачными.
Заполняем список текстов
Создаем различные предметы (ВАЖНО: ID предметов должны быть различны) и тестируем
В данном уроке мы рассмотрели вариант создания инвентаря при помощи Scriptable Object. UI инвентаря – лишь тестовый вариант отображения, вы можете переделать его на свой вкус, так же можно сделать дополнительный класс для того, чтоб Image и Text не были отдельными списками, сделать инвентарь бесконечным, добавить возможность убирать предметы из инвентаря, сделать разные типы предметов наследуя их от Item и тд.
Как создать простой инвентарь в Unity
Инвентарь — одна из важнейших деталей игр многих жанров. Однако создать его может быть не так просто, как кажется на первый взгляд.
Евгений Кучерявый
Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Чтобы реализовать инвентарь, нужно уже уметь создавать простые игры и работать с интерфейсами.
Как создать окно инвентаря
Добавьте на карту элементы Canvas с именем InventoryCanvas и Panel, в котором будут находиться остальные элементы:
В компоненте Canvas Scaller укажите в UI Scale Mode вариант Scale With Screen. Так размер инвентаря будет зависеть от разрешения экрана. Внутри Panel создайте еще одну панель и назовите ее Items:
Поменяйте цвет и добавьте компонент Grid Layout Group — он позволит расположить компоненты по сетке. Можно указать отступы и размер клеток. Затем добавьте название окна — это еще одна панель с текстом.
Теперь пора приступить к созданию ячеек. Внутри панели Items создайте кнопку и назовите ее Slot. Внутрь кнопки добавьте Image и назовите этот элемент Icon — в нем будет отображаться спрайт предмета. Также создайте пустой скрипт Slot.cs, а потом сохраните слот как префаб.
После этого можно создать несколько копий ячейки, которые автоматически расположатся по сетке.
Теперь нужен скрипт, который будет отвечать за открытие и закрытие инвентаря и другой функционал, — Inventory.cs. Прикрепите его к InventoryCanvas.
Как создать предмет
Рассмотреть создание предметов можно на примере брони для танка. Она будет выглядеть так:
А на танке крепится так:
Для начала перетащите спрайт на карту и добавьте ему коллайдер с триггером:
Триггер нужен, чтобы его объект можно было «подбирать», наезжая на него. Добавьте скрипт Item.cs:
Пока скрипт Items.cs не создан, поэтому попытка его вызова может привести к ошибке — закомментируйте строку obj.GetComponent().AddItem (index);
Как подобрать предмет
Создайте скрипт Items.cs и добавьте его персонажу:
Как добавить предмет в инвентарь
Теперь нужно сделать так, чтобы подобранные предметы отображались в инвентаре. Для этого добавьте вот такой код в скрипт Slot.cs:
Как надеть предмет
За надевание предмета будет отвечать скрипт Items:
Теперь пора проверить, как всё это работает:
Заключение
Инвентарь — достаточно сложный игровой компонент. В этой статье был разобран лишь минимальный функционал. Кроме него, можно реализовать еще много всего интересного: влияние предметов на характеристики персонажа, выкидывание предметов, передачу их другим игрокам, лут и многое другое.
Если вы хотите лучше изучить работу с Unity, записывайтесь на курс «Профессия разработчик игр на Unity». Вы научитесь создавать все основные компоненты для игры и сможете работать над крупными проектами.
Профессии с трудоустройством
- 3D-дженералист
- Разработчик игр на Unity
- Геймдизайнер
- Разработчик игр на Unreal Engine
- Концепт-художник