Menu
CoddyTech

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.

challenge icon

Görev

Kolay

Grunt'ın yol boyunca, bir ara noktadan diğerine yürümesini sağla.

  1. Enemy içine private int next = 1; ekle (Grunt, WP0'da başlar).
  2. Update içinde, next >= waypoints.Length olduğunda geri dön.
  3. Vector3.MoveTowards ile speed * Time.deltaTime hızında waypoints[next].position konumuna doğru ilerle; oraya ulaştığında next++ 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