Ringkasan: Turret Modular
Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 5 dari 50.
Tantangan
MudahRakit dua turret di area uji dari bagian-bagian yang tersedia. TurretControl.cs sudah memutar setiap turret dengan tombol panah kiri dan kanan, dan Shell.cs menerbangkan peluru ke depan. Scene memberi Turret1 Cannon dan Ammo dengan 4 peluru, serta Turret2 TwinCannon dan Ammo dengan 3 peluru. Tulis bagian-bagian berikut:
- Ammo: memiliki int publik
shellsdan method publikbool Take(). Jika masih ada peluru, method ini menggunakan satu peluru dan mengembalikantrue. Jika tidak ada peluru, method ini mencatat nama object danis empty, sepertiTurret2 is empty, lalu mengembalikanfalse. - Weapon: sebuah komponen abstrak yang selalu dilengkapi Ammo, dengan
shellPrefabpublik (sebuah GameObject), float publikcooldown(Inspector mengatur nilainya menjadi 1), dan method publikPull(). Tarikan selama cooldown tidak melakukan apa pun dan tidak menggunakan peluru. Jika tidak, apabilaTake()memberikan peluru, cooldown dimulai danFire()dijalankan. Setiap senjata menulis method abstrak ini. - Cannon menembakkan satu peluru dari 1 unit di depan turret. TwinCannon menembakkan dua peluru dengan menggunakan satu peluru amunisi, dari posisi 0.4 ke kiri dan 0.4 ke kanan dari titik tersebut. Peluru dimulai dari
transform.position + transform.rotation * offset, dengan arah yang sama seperti turret (transform.rotation), denganoffsetsebagai posisi yang dilihat dari turret, sepertinew Vector3(0f, 0f, 1f). - Di TurretControl, Space menarik pelatuk Weapon apa pun yang dimiliki turret.
Tekan Play, putar dan tembak sampai kedua turret kehabisan peluru, lalu tekan Check.
Coba sendiri
using UnityEngine;
// Hal yang dimiliki bersama oleh setiap senjata turret.
public class Weapon : MonoBehaviour
{
}
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: FindNearest