Повторение: клавиша взаимодействия
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 9 из 50.
Задание
ЛегкоДобавьте игроку клавишу взаимодействия. Стрелки перемещают Player (Mover.cs, готово), а клавиша Space позволяет взаимодействовать с ближайшим объектом в пределах досягаемости. Напишите следующие части:
- IInteractable: интерфейс с одним методом —
void Interact(). - Door: при каждом взаимодействии дверь открывается или закрывается. При открытии она поворачивается на 90 градусов вокруг оси y и выводит в журнал
Door opened; при закрытии поворачивается обратно и выводит в журналDoor closed. - Chest: при первом взаимодействии выводит в журнал
Found 5 coins(значениеcoinsзадаёт Inspector) и опустошается. При каждом последующем взаимодействии выводит в журналThe chest is empty. - Lever: при каждом взаимодействии переключает
bridge(GameObject, который задаёт Inspector и который изначально скрыт) — включает или выключает его — и выводит в журналLever pulled. - Interactor на Player: при нажатии Space (считайте нажатие с помощью
Keyboard.currentиз Input System) найдите коллайдеры в пределахreach(1.5) с помощьюPhysics.OverlapSphereи вызовитеInteract()у ближайшего к игроку объекта, у которого есть IInteractable. Если в пределах досягаемости ничего нет, ничего не происходит.
Нажмите Играть, походите и взаимодействуйте со всеми объектами, затем нажмите Проверить.
Попробуйте сами
using UnityEngine;
using UnityEngine.InputSystem;
// Space взаимодействует с ближайшим объектом в пределах досягаемости.
public class Interactor : MonoBehaviour
{
public float reach = 1.5f;
}
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыСовместная работа компонентовПовторение: модульная турель4Сериализованные данные
Сериализуемые классыСписки в InspectorПеречисления в InspectorПовторение: таблица лута2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействия5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиВолны как данныеПовторение: база предметов