Menu
CoddyTech

Status Siaga

Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 36 dari 64.

challenge icon

Tantangan

Sedang

Buat turret waspada saat player mendekat.

  1. Di TurretStates.cs, tulis AlertState dengan head dan player. Enter: atur head ke Color.red, lalu catat Intruder!. Tick: arahkan head ke player pada sumbu y. Exit: catat All clear.
  2. Di Turret, tulis SetState(IState next): jalankan Exit state lama, lalu Enter state baru.
  3. Perbarui state menjadi alert saat player berada dalam range, dan menjadi scan jika tidak, lalu jalankan Tick pada state saat ini.

Tekan tombol “Main” dan berjalanlah mendekat. Lalu tekan tombol “Periksa”.

Coba sendiri

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

Semua pelajaran di Arsitektur Game di Unity

Latihan sendiri: Playground Unity