Открытие ящиков и шкафов определенными ключами в Unity

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

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

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

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

  1. Откройте Unity Hub и создайте новый проект Unity.
  2. Настройте свою сцену с помощью ящиков, шкафов или любых объектов, с которыми вы хотите взаимодействовать.

Внедрение интерактивной системы

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

'InteractiveObject.cs'

using UnityEngine;

public class InteractiveObject : MonoBehaviour
{
    public KeyCode interactionKey;
    public GameObject openState;
    public GameObject closedState;

    private bool isOpen = false;

    void Update()
    {
        if (Input.GetKeyDown(interactionKey))
        {
            ToggleObjectState();
        }
    }

    void ToggleObjectState()
    {
        isOpen = !isOpen;
        openState.SetActive(isOpen);
        closedState.SetActive(!isOpen);
    }
}

Шаг 2. Настройка состояний объекта

  1. Создайте два пустых GameObjects в качестве дочерних объектов каждого ящика или шкафа. Назовите один "OpenState", а другой "ClosedState".
  2. Установите начальные позиции этих дочерних объектов, чтобы они представляли открытое и закрытое состояния ящика или шкафа.
  3. Назначьте эти дочерние объекты переменным 'openState' и 'closedState' в сценарии 'InteractiveObject.cs'.

Шаг 3. Назначьте ключ взаимодействия

  1. Выберите объект в сцене с прикрепленным скриптом 'InteractiveObject.cs'.
  2. В окне «Инспектор» установите для переменной 'interactionKey' нужный код ключа (например, KeyCode.E для ключа "E").

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

  1. Воспроизведите сцену в Unity.
  2. Подойдите к ящикам или шкафам.
  3. Нажмите назначенную клавишу (например, "E"), чтобы открыть и закрыть их.

Заключение

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

Рекомендуемые статьи
Создание интерактивных объектов в Unity
Добавление входа игрока в машину в Unity
Взаимодействие с объектами в игре Unity
Учебник по открытию двери ключом в Unity
Введение в конечный автомат в Unity
Создание GrabPack в Unity, вдохновленное Poppy Playtime
Создание эффекта Bullet Time в Unity