Menu
CoddyTech

Ringkasan: Pool Peluru

Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 40 dari 50.

challenge icon

Tantangan

Sedang

Latihan 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, gunakan ObjectPool<Bullet> yang membuat bullet dari bulletPrefab, 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 kecepatan speed (15). Saat mengenai sesuatu yang memiliki skrip Target (collider bullet adalah trigger), bullet memanggil Hit() milik target dan langsung kembali ke pool. Bullet yang tidak mengenai apa pun kembali setelah life (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