Система выбора и сброса без инвентаря в Unity

В этом уроке мы создадим простую систему выбора и сброса в Unity без использования системы инвентаря. Эта система позволит игроку подбирать объекты из окружающей среды и бросать их в другое место.

Предварительные условия

  • Unity Хаб установлен
  • Unity Редактор (версия 2019 или новее)
  • Базовые знания C#

Настройка проекта

  1. Откройте Unity Hub и создайте новый проект Unity.
  2. Настройте свою сцену с персонажем игрока и некоторыми объектами для взаимодействия.

Внедрение системы Pick and Drop

Шаг 1. Создайте сценарий самовывоза

using UnityEngine;

public class Pickup : MonoBehaviour
{
    private Transform heldObject;
    private Vector3 offset;

    void Update()
    {
        if (heldObject != null)
        {
            MoveHeldObject();
            CheckDrop();
        }
        else
        {
            CheckPickup();
        }
    }

    void MoveHeldObject()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        heldObject.position = new Vector3(mousePosition.x + offset.x, mousePosition.y + offset.y, 0);
    }

    void CheckPickup()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
            if (hit.collider != null && hit.collider.CompareTag("Pickup"))
            {
                heldObject = hit.transform;
                offset = heldObject.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
            }
        }
    }

    void CheckDrop()
    {
        if (Input.GetMouseButtonDown(1))
        {
            heldObject = null;
        }
    }
}

Шаг 2. Добавьте теги к объектам подбора

Отметьте объекты, которые вы хотите, чтобы игрок мог подобрать, тегом "Pickup".

  1. Выберите объект в сцене.
  2. В окне инспектора щелкните раскрывающийся список "Tag".
  3. Выберите "Add Tag" и введите "Pickup".
  4. Примените тег к объекту.

Шаг 3. Тестирование системы

  1. Добавьте в сцену несколько объектов с тегом "Pickup".
  2. Воспроизведите сцену в Unity.
  3. Нажмите на отмеченный объект, чтобы поднять его.
  4. Щелкните правой кнопкой мыши, чтобы отбросить удерживаемый объект.

Заключение

Вы успешно реализовали простую систему подбора и сброса без использования инвентаря в Unity. Эта система позволяет игроку взаимодействовать с объектами на сцене, поднимая и бросая их в разные места. Не стесняйтесь расширять эту систему, добавляя такие функции, как привязка объектов, вращение объектов или более сложные взаимодействия.

Рекомендуемые статьи
Создание инвентаря и системы создания предметов в Unity
Как создать шейдер
Открытие ящиков и шкафов определенными ключами в Unity
Реализация телепортации в Unity
Логика стрельбы из ракетницы в Unity
Встроенный способ работы с JSON в коде Unity
Создание сцены окончания игры в Unity