Stan alarmowy
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 36 z 64.
Wyzwanie
ŚredniAlarmuj wieżyczkę, gdy gracz się zbliży.
- W pliku
TurretStates.csnapiszAlertState, przekazując głowę i gracza. Przy wejściu: ustaw głowieColor.red, zapisz w loguIntruder!. Przy aktualizacji: skieruj głowę w stronę gracza wokół osi y. Przy wyjściu: zapisz w loguAll clear. - W
TurretnapiszSetState(IState next): wywołaj Exit poprzedniego stanu, a następnie Enter nowego. - Aktualizuj stan alarmu, gdy gracz jest w zasięgu
range, a w przeciwnym razie skanuj, po czym aktualizuj bieżący stan.
Naciśnij „Graj” i podejdź blisko. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
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()
{
}
}
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyBazowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPowtórka: modułowa wieżyczkaPowtórka: podwójne działo4Dane serializowane
Klasy serializowalneListy w InspectorzeEnumy w InspectorzePodsumowanie: tabela łupówPodsumowanie: losowanie łupów7Maszyny stanów
Stany jako klasyStan alarmowyMaszyna stanówPrzejściaMózgi przeciwnikówAtaki rycerzaPodsumowanie: stany drzwi2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPowtórka: klawisz interakcjiPowtórka: najbliższy w zasięgu5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaOcal wiatrFale jako danePowtórka: Baza przedmiotówPowtórka: Kupowanie w sklepie8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearestPoćwicz samodzielnie: Edytor online Unity