Menu
CoddyTech

Alarm Durumu

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 36 / 64.

challenge icon

Görev

Orta

Oyuncu yaklaşınca taret alarm versin.

  1. TurretStates.cs içinde, kafa ve oyuncu verilen AlertState'i yaz. Enter: kafanın rengini Color.red yap, Intruder! mesajını günlüğe yaz. Tick: y ekseni etrafında oyuncuya dön. Exit: All clear mesajını günlüğe yaz.
  2. Turret içinde SetState(IState next) metodunu yaz: önce eski durumun Exit metodu, ardından yenisinin Enter metodu çalışsın.
  3. range içindeyken alarm durumuna geç, aksi hâlde tarama durumuna geç ve ardından mevcut durumu tick et.

“Oyna” düğmesine bas ve yakına yürü. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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'de Oyun Mimarisi bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground