Titik Perhentian
Pelajaran 1 dari 25 dalam kursus Game Unity: Tower Defense di Coddy.
Dalam kursus ini, kamu membuat game pertahanan menara: musuh berjalan melewati jalur dalam beberapa gelombang menuju markasmu, lalu menara yang kamu bangun di samping jalur menghentikan mereka. Setiap pelajaran menambahkan satu fitur. Tekan tombol “Main” untuk mencobanya dan tombol “Periksa” untuk menilainya. Semua dua belas skrip sudah ada di proyek sejak awal; sebagian besar berupa kerangka singkat yang akan dilengkapi oleh pelajaran berikutnya, dan EnemyData disediakan untuk pelajaran 2.
Jalurnya terdiri dari delapan titik arah, WP0 di tempat kemunculan hingga WP7 di markas, dalam array waypoints milik Grunt. Grunt menyimpan indeks titik yang ditujunya dan bergerak ke sana. Vector3.MoveTowards tidak pernah melewati targetnya, jadi Grunt berhenti tepat di titik arah dan == dapat mengetahui bahwa Grunt telah tiba:
Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
// sudah sampai: menuju titik berikutnya
}Setelah titik arah terakhir, indeksnya sama dengan waypoints.Length, dan membaca array pada indeks itu akan menimbulkan error, jadi periksa indeksnya sebelum kamu menggunakannya.
Tantangan
MudahBuat Grunt berjalan menyusuri jalur, dari satu titik jalan ke titik jalan berikutnya.
- Di
Enemy, tambahkanprivate int next = 1;(Grunt mulai di WP0). - Di
Update, kembalikan kendali saatnext >= waypoints.Length. - Bergeraklah menuju
waypoints[next].positiondenganVector3.MoveTowardspada kecepatanspeed * Time.deltaTime; saat sudah sampai, jalankannext++.
Tekan tombol “Main”: Grunt berjalan melewati setiap sudut dan berhenti di markas. Lalu tekan tombol “Periksa”.
Coba sendiri
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 2f;
public Transform[] waypoints;
void Update()
{
// Ikuti jalur di sini: dari satu waypoint ke waypoint berikutnya secara berurutan.
}
}
Semua pelajaran di Game Unity: Tower Defense
Latihan sendiri: Playground Unity