Система выбора и сброса без инвентаря в Unity
В этом уроке мы создадим простую систему выбора и сброса в Unity без использования системы инвентаря. Эта система позволит игроку подбирать объекты из окружающей среды и бросать их в другое место.
Предварительные условия
- Unity Хаб установлен
- Unity Редактор (версия 2019 или новее)
- Базовые знания C#
Настройка проекта
- Откройте Unity Hub и создайте новый проект Unity.
- Настройте свою сцену с персонажем игрока и некоторыми объектами для взаимодействия.
Внедрение системы 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".
- Выберите объект в сцене.
- В окне инспектора щелкните раскрывающийся список "Tag".
- Выберите "Add Tag" и введите "Pickup".
- Примените тег к объекту.
Шаг 3. Тестирование системы
- Добавьте в сцену несколько объектов с тегом "Pickup".
- Воспроизведите сцену в Unity.
- Нажмите на отмеченный объект, чтобы поднять его.
- Щелкните правой кнопкой мыши, чтобы отбросить удерживаемый объект.
Заключение
Вы успешно реализовали простую систему подбора и сброса без использования инвентаря в Unity. Эта система позволяет игроку взаимодействовать с объектами на сцене, поднимая и бросая их в разные места. Не стесняйтесь расширять эту систему, добавляя такие функции, как привязка объектов, вращение объектов или более сложные взаимодействия.