Ringkasan: Pool Peluru
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 40 dari 50.
Tantangan
SedangLatihan menembak. Panah menggeser Tank ke kiri dan kanan (sudah siap), dan kedua target merah memiliki skrip Target dengan Hit() (sudah siap). Buat tank menembakkan bullet dari pool:
- Di
Tank.cs, gunakanObjectPool<Bullet>yang membuat bullet daribulletPrefab, mengaktifkannya saat diambil dan menonaktifkannya saat dikembalikan, menghancurkan bullet yang dilepas, dan menyimpan paling banyak 4 bullet cadangan. - Tombol Space mengambil bullet dari pool dan memulainya 1 unit di depan tank.
- Di
Bullet.cs, bullet melaju ke depan (+z) dengan kecepatanspeed(15). Saat mengenai sesuatu yang memiliki skrip Target (collider bullet adalah trigger), bullet memanggilHit()milik target dan langsung kembali ke pool. Bullet yang tidak mengenai apa pun kembali setelahlife(1) detik. - Setiap tembakan memberi bullet masa hidup penuh, termasuk bullet yang digunakan kembali, dan bullet kembali ke pool satu kali per tembakan.
Tekan Play, tembak kedua target, lalu tekan Check.
Coba sendiri
using UnityEngine;
using UnityEngine.Pool;
public class Bullet : MonoBehaviour
{
public float speed = 15f;
public float life = 1f;
// Terbang maju, lalu kembali ke pool saat mengenai Target atau setelah life detik
}
Semua pelajaran di Arsitektur Game di Unity
1Komponen, Bukan Hierarki
Komponen KecilSkrip Dasar MusuhKomponen AbstrakKomponen yang Bekerja SamaRingkasan: Turret Modular5ScriptableObjects
Aset DataStatistik SenjataPengaturan BersamaGelombang sebagai DataUlasan: database Item8Kode yang Dapat Digunakan Kembali
Extension methodSingleton GenerikHelper GenerikUlasan: FindNearest3Event
Event C# di UnityBerlangganan di OnEnableField UnityEventEvent Menggerakkan UIRingkasan: Popup Pencapaian9Object Pooling
Mengapa Menggunakan Object PoolPool dengan QueueObjectPool di UnityRingkasan: Pool Peluru