Система Предметов - Документация

Этот документ объясняет, как использовать систему подбора предметов в вашем проекте Godot.

Обзор

Система предметов состоит из нескольких компонентов:

  1. Item.gd - Базовый класс предмета с функциональностью подбора

  2. ItemManager.gd - Система управления инвентарем

  3. CharacterBody3D.gd - Обновленный контроллер персонажа с взаимодействием с предметами

  4. Item.tscn - Префаб предмета

  5. TestItem.tscn - Пример предмета для тестирования

Как Это Работает

Подбор Предметов

  1. У предметов есть зона подбора (Area3D), которая обнаруживает вход игрока

  2. При нахождении в радиусе действия предмета появляется подсказка о подборе

  3. Нажмите ‘E’ для подбора предмета

  4. Предметы добавляются в инвентарь игрока

Управление

  • WASD - Движение

  • Мышь - Осмотр вокруг

  • E - Подобрать предмет

Создание Новых Предметов

  1. Создайте новую сцену на основе item.tscn

  2. Установите свойства предмета в Инспекторе:

    • item_name - Отображаемое название

    • item_description - Описание предмета

    • item_type - Категория (оружие, броня, расходуемое, прочее)

    • item_id - Уникальный идентификатор

    • pickup_distance - Радиус для обнаружения подбора

  3. Добавьте mesh и material для визуального представления

  4. Разместите предмет в своей сцене

Настройка

Размер Инвентаря

Измените max_inventory_size в ItemManager.gd для изменения вместимости инвентаря.

Радиус Подбора

Отрегулируйте pickup_distance на отдельных предметах или измените значение по умолчанию в Item.gd.

Действия Ввода

Отредактируйте карту ввода в project.godot для изменения привязок клавиш.

Пример Использования

# Создаем зелье здоровья
var health_potion = preload("res://item.tscn").instantiate()
health_potion.item_name = "Зелье Здоровья"
health_potion.item_description = "Восстанавливает 50 здоровья"
health_potion.item_type = "consumable"
health_potion.item_id = "health_potion_001"
add_child(health_potion)

Решение Проблем

  • Предметы не показывают подсказку о подборе: Проверьте, что у предмета есть PickupArea с правильной формой коллизии

  • Невозможно подобрать предметы: Убедитесь, что предмет находится в радиусе действия и в инвентаре есть место

Особенности Системы

  • Предметы автоматически добавляются в группу “items” для обнаружения

  • Система использует area detection для определения радиуса подбора

  • Размер инвентаря настраивается

  • Предметы сохраняют ссылки на своего владельца для отслеживания

  • Подсказка о подборе появляется в центре экрана

  • Предметы исчезают с эффектом затухания при подборе