Состояние тревоги
Часть раздела Архитектура игр в Unity путешествия по Unity на Coddy. Урок 36 из 64.
Задание
СреднеПереведи турель в состояние тревоги, когда игрок подходит близко.
- В
TurretStates.csнапишиAlertState, передав ей голову и игрока. В Enter: установи для головы цветColor.red, выведи в журналIntruder!. В Tick: поверни голову к игроку вокруг оси y. В Exit: выведи в журналAll clear. - В
TurretнапишиSetState(IState next): сначала вызови Exit старого состояния, затем Enter нового. - В методе Update переключайся в состояние тревоги, когда игрок находится в пределах
range, а в противном случае выполняй сканирование, затем вызывай Tick текущего состояния.
Нажми «Играть» и подойди близко. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class ScanState : IState
{
private Transform head;
private float angle;
private float direction = 1f;
public ScanState(Transform head)
{
this.head = head;
}
public void Enter()
{
angle = 0f;
direction = 1f;
head.GetComponent<Renderer>().material.color = Color.green;
}
public void Tick()
{
angle += 90f * direction * Time.deltaTime;
if (angle > 45f)
{
angle = 45f;
direction = -1f;
}
if (angle < -45f)
{
angle = -45f;
direction = 1f;
}
head.localRotation = Quaternion.Euler(0f, angle, 0f);
}
public void Exit()
{
}
}
Все уроки раздела Архитектура игр в Unity
1Компоненты, а не иерархии
Небольшие компонентыБазовый скрипт врагаАбстрактные компонентыКомпоненты работают вместеПовторение: модульная турельПовторение: спаренная пушка4Сериализованные данные
Сериализуемые классыСписки в инспектореПеречисления в инспектореПовторение: таблица добычиПовторение: определяем добычу7Машины состояний
Состояния как классыСостояние тревогиМашина состоянийПереходыЛогика враговРыцарь атакуетПовторение: состояния двери2Интерфейсы в Unity
IDamageableИнтерфейсы и TryGetComponentGetComponentsПовторение: клавиша взаимодействияПовторение: ближайший в пределах досягаемости5ScriptableObjects
Ресурсы данныхХарактеристики оружияОбщие настройкиСохраняем ветерВолны как данныеПовторение: база предметовПовторение: покупка в магазинеПотренируйтесь самостоятельно: Песочница Unity