Menu
CoddyTech

L’état d’alerte

Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 36 sur 64.

challenge icon

Défi

Moyen

Déclenche l’alerte de la tourelle lorsque le joueur s’approche.

  1. Dans TurretStates.cs, écris AlertState en lui fournissant la tête et le joueur. À l’entrée : définis la tête sur Color.red et affiche Intruder! dans le journal. À chaque mise à jour : oriente la tête vers le joueur autour de l’axe y. À la sortie : affiche All clear dans le journal.
  2. Dans Turret, écris SetState(IState next) : appelle d’abord Exit de l’ancien état, puis Enter du nouvel état.
  3. Lors de la mise à jour, déclenche l’alerte si le joueur est à portée de range, sinon lance le balayage, puis mets à jour l’état actuel.

Appuie sur « Jouer » et approche-toi. Puis appuie sur « Vérifier ».

Essayez vous-même

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()
    {
    }
}

Toutes les leçons de Architecture de jeu dans Unity

Entraînez-vous par vous-même : Playground Unity