Menu
CoddyTech

O estado de alerta

Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 36 de 64.

challenge icon

Desafio

Médio

Alerta a torre quando o jogador se aproximar.

  1. Em TurretStates.cs, escreva AlertState, recebendo a cabeça e o jogador. Ao entrar: defina a cabeça como Color.red e registre Intruder!. A cada atualização: vire-se para o jogador em torno do eixo y. Ao sair: registre All clear.
  2. Em Turret, escreva SetState(IState next): execute Exit do estado antigo e, em seguida, Enter do novo.
  3. Atualize para alertar quando estiver dentro de range; caso contrário, examine a área e, em seguida, atualize o estado atual.

Pressione “Jogar” e caminhe para perto. Depois, “Verificar”.

Experimente você mesmo

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 as lições de Arquitetura de Jogos no Unity

Pratique por conta própria: Playground de Unity