Yol Noktaları
Coddy'nin Unity Oyunu: Kule Savunması kursunda ders 1 / 25.
Bu kursta bir kule savunma oyunu oluşturacaksın: düşmanlar dalgalar hâlinde bir yol boyunca üssüne doğru yürür ve yolun yanına inşa ettiğin kuleler onları durdurur. Her ders yeni bir özellik ekler. Denemek için “Oyna”, kodunu değerlendirmek için “Kontrol et” düğmesine bas. On iki betiğin tamamı proje içinde en başından bulunur; çoğu, sonraki derslerde doldurulacak kısa iskeletlerden oluşur ve 2. ders için EnemyData sağlanır.
Yol, Grunt'ın waypoints dizisinde bulunan sekiz ara noktadan oluşur; WP0 doğma noktasında, WP7 ise üste yer alır. Grunt, yöneldiği ara noktanın dizinini tutar ve ona doğru hareket eder. Vector3.MoveTowards hedefini asla geçmez; bu nedenle Grunt tam olarak ara noktaya ulaşır ve == ile oraya varıp varmadığını anlayabilirsin:
Vector3 target = waypoints[3].position;
transform.position = Vector3.MoveTowards(transform.position, target, 5f * Time.deltaTime);
if (transform.position == target)
{
// varıldı: sıradakine yönel
}Son ara noktadan sonra dizin waypoints.Length değerine eşit olur ve diziyi bu konumda okumak hata verir; bu yüzden kullanmadan önce dizini kontrol et.
Görev
KolayGrunt'ın yol boyunca, bir ara noktadan diğerine yürümesini sağla.
Enemyiçineprivate int next = 1;ekle (Grunt, WP0'da başlar).Updateiçinde,next >= waypoints.Lengtholduğunda geri dön.Vector3.MoveTowardsilespeed * Time.deltaTimehızındawaypoints[next].positionkonumuna doğru ilerle; oraya ulaştığındanext++yap.
“Oyna” düğmesine bas: Grunt tüm köşelerden geçerek yürür ve üste durur. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Enemy : MonoBehaviour
{
public float speed = 2f;
public Transform[] waypoints;
void Update()
{
// Burada yolu sırayla bir waypoint'ten diğerine giderek takip et.
}
}
Unity Oyunu: Kule Savunması bölümündeki tüm dersler
Kendi başına pratik yap: Unity playground