Menu
CoddyTech

Özet: Mermi Havuzu

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

challenge icon

Görev

Orta

Hedef 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.cs içinde, mermileri bulletPrefab öğ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 bir ObjectPool<Bullet> bulundur.
  • Boşluk tuşu havuzdan bir mermi alır ve onu tankın 1 birim önünde başlatır.
  • Bullet.cs iç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), hedefin Hit() 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