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.
Tantangan
Mudah- Tambahkan
using UnityEngine.InputSystem;keSnake. - Di awal
Update(), bacaKeyboard.current. Menekan panah atas atau W akan mengaturdirectionkeVector3.forward; panah bawah atau S keVector3.back; panah kiri atau A keVector3.left; panah kanan atau D keVector3.right. - 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;
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.