Özet: Mermi Havuzu
Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 40 / 50.
Görev
OrtaHedef talimi. Ok tuşları Tank'ı sola ve sağa kaydırır (hazır) ve iki kırmızı hedefte Target betiğiyle birlikte Hit() bulunur (hazır). Tankın havuzlanmış mermiler atmasını sağla:
Tank.csiçinde, mermileribulletPrefaböğesinden oluşturan, havuzdan alındıklarında etkinleştiren ve geri geldiklerinde devre dışı bırakan, bıraktıklarını yok eden ve en fazla 4 yedek mermi tutan birObjectPool<Bullet>bulundur.- Boşluk tuşu havuzdan bir mermi alır ve onu tankın 1 birim önünde başlatır.
Bullet.csiçinde bir mermi,speed(15) hızında ileriye (+z) doğru uçar. Target betiği olan bir şeye çarptığında (merminin collider'ı bir trigger'dır), hedefinHit()metodunu çağırır ve hemen havuza geri döner. Hiçbir şeye çarpmayan bir mermi,life(1) saniye sonra geri döner.- Her atışta mermiye tam ömrü ver; yeniden kullanılan mermiye de. Bir mermi, her atış başına havuza yalnızca bir kez dönmelidir.
Play'e bas, iki hedefi de vur, ardından Check'e bas.
Kendin dene
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// İleri doğru uç; bir Target'a çarptığında veya life saniye sonra havuza geri dön
}
Unity'de Oyun Mimarisi bölümündeki tüm dersler
1Hiyerarşiler Değil, Bileşenler
Küçük BileşenlerTemel Bir Düşman BetiğiSoyut BileşenlerBirlikte Çalışan BileşenlerÖzet: Modüler Taret4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larÖzet: Ganimet Tablosu7Durum Makineleri
Sınıflar Olarak DurumlarBir Durum MakinesiGeçişlerDüşmanların Yapay ZekâsıTekrar: Kapı Durumları10Proje: Arena Hayatta Kalma
KahramanDüşman Türleri5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriPaylaşılan AyarlarVeri Olarak DalgalarTekrar: Eşya Veritabanı8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearest