El estado de alerta
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 36 de 64.
Desafío
IntermedioAlerta a la torreta cuando el jugador se acerque.
- En
TurretStates.cs, escribeAlertState, con la cabeza y el jugador. Al entrar: cabezaColor.red, registraIntruder!. En cada actualización: apunta hacia el jugador en torno al eje y. Al salir: registraAll clear. - En
Turret, escribeSetState(IState next): ejecuta Exit del estado anterior y después Enter del nuevo. - En
Update, alerta cuando esté dentro derange; en caso contrario, escanea y después actualiza el estado actual.
Presiona «Jugar» y acércate caminando. Después, pulsa «Comprobar».
Pruébalo tú mismo
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()
{
}
}
Todas las lecciones de Arquitectura de juegos en Unity
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modularRepaso: cañón doble4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botínRepaso: sortear el botín7Máquinas de estados
Estados como clasesEl estado de alertaUna máquina de estadosTransicionesCerebros enemigosEl caballero atacaRepaso: estados de puertas2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: Tecla de interacciónRepaso: El más cercano al alcance5ScriptableObjects
Activos de datosEstadísticas de armasConfiguración compartidaGuardar el vientoOleadas como datosRepaso: base de datos de objetosRepaso: comprar en la tienda3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logrosRepaso: temporizador de la ventana emergentePractica por tu cuenta: Playground de Unity