Menu
CoddyTech

Arahkan

Pelajaran 2 dari 14 dalam kursus Game Unity: Snake 3D di Coddy.

Ular berbelok dengan tombol panah atau WASD. Kamera melihat papan dari tepi depan, jadi arah ke atas layar adalah sepanjang +z, Vector3.forward, dan arah ke bawah adalah Vector3.back. Vector3.up mengarah ke langit: kepala yang bergerak ke arah itu akan terangkat dari papan.

Belokan terjadi sekali setiap kali tombol ditekan, jadi baca tombol dengan wasPressedThisFrame dari Input System. Tekanan tombol hanya mengubah direction. Step() tetap menggerakkan kepala pada tick berikutnya, jadi ular mempertahankan iramanya. Rover yang bergerak ke arah kanan layar saat D ditekan:

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

Input System tidak memiliki sumbu pada keyboard: tombol panah dan hurufnya adalah dua tombol, yang digabungkan dengan ||. Keyboard.current bernilai null pada perangkat yang tidak memiliki keyboard, jadi baca nilainya sekali di bagian atas lalu periksa nilainya.

challenge icon

Tantangan

Mudah
  1. Tambahkan using UnityEngine.InputSystem; ke Snake.
  2. Di awal Update(), baca Keyboard.current. Menekan panah atas atau W akan mengatur direction ke Vector3.forward; panah bawah atau S ke Vector3.back; panah kiri atau A ke Vector3.left; panah kanan atau D ke Vector3.right.
  3. Biarkan Step() seperti apa adanya: kepala berbelok pada tick berikutnya.

Tekan Play, klik game dan arahkan ular, lalu tekan Check.

Coba sendiri

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // detik antara dua langkah
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Unity: Snake 3D