Menu
CoddyTech

Tekrar: Modüler Taret

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 5 / 64.

challenge icon

Görev

Kolay

Turret1'in silahını oluştur. TurretControl ve Cannon hazır.

  1. Ammo içinde public bool Take() yaz: bir mermi kullanıp true döndür ya da name + " is empty" ile günlük kaydı oluşturup false döndür.
  2. Weapon sınıfını [RequireComponent(typeof(Ammo))] ile soyut yap ve Fire() metodunu gövdesiz protected abstract olarak tanımla.
  3. Pull(), cooldown sırasında hiçbir şey yapmaz; aksi takdirde, Take() doğruysa bekleme süresini yeniden başlatır ve Fire() metodunu çağırır.

“Oyna” düğmesine bas ve mermisi bitene kadar ateş et. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

// Tüm taret silahlarının ortak özellikleri.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // cooldown süresinin dolmasını bekle, Ammo'dan bir mermi al, ardından ateş et
    }

    // Her silah kendine özgü bir şekilde ateş eder.
    protected virtual void Fire()
    {
    }

    // Taretten bakıldığında bu noktadan çıkıp taretin baktığı yöne uçan bir mermi.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Unity'de Oyun Mimarisi bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground