Dalam dunia Susuwatari, arang batu ditaburkan di sekeliling bilik. Susuwatari akan mengumpulnya dan kemudian membawanya ke relau. Tetapi apa yang berlaku jika masih terdapat arang batu di dalam bilik dan relau sudah dibekalkan? Di sinilah RoomCoalManager memainkan peranan. Ia bertindak sebagai contoh kawalan pusat, memastikan gelung permainan berfungsi dengan lancar.
Mengapakah contoh ruang berguna
Tanpa pengurusan pusat, relau tidak tahu berapa banyak objek arang batu yang wujud di dalam bilik itu. Ia hanya tahu jumlah yang disimpan dalam inventorinya pada masa ini. Ini boleh menyebabkan logik permainan yang tidak konsisten.
RoomCoalManager menyelesaikan masalah ini dengan:
- menyimpan jumlah keseluruhan arang batu di dalam bilik
- Ia mengira berapa banyak yang telah dikumpulkan.
- menyediakan pertanyaan mudah untuk memeriksa sama ada bilik itu "kosong".
Ini mewujudkan peraturan yang jelas: Susuwatari hanya boleh menghantar arang batu setelah semuanya dikumpulkan.
Asas teknikal
Pengurus ialah GameObject kosong di dalam bilik dengan skripnya sendiri. Semasa permulaan, ia mengira semua objek yang ditag "Arang Batu". Setiap kali Susuwatari mengumpul arang batu, maklumat ini dilaporkan kepada Pengurus.
using UnityEngine;
public class RoomCoalManager : MonoBehaviour
{
public int totalCoalInRoom = 0;
public int collectedCoal = 0;
public bool AllCoalCollected => totalCoalInRoom > 0 && collectedCoal >= totalCoalInRoom;
private void Awake()
{
if (totalCoalInRoom <= 0)
{
totalCoalInRoom = GameObject.FindGameObjectsWithTag("Kohle").Length;
}
}
public void RegisterCoalPickup()
{
collectedCoal++;
}
}
Oleh itu, bilik itu mempunyai ingatannya sendiri.
Komunikasi dengan Susuwatari
Sebaik sahaja Susuwatari mengumpul objek arang batu, PlayerCoalDetector miliknya memanggil kaedah tersebut RegisterCoalPickup() naik. Pengurus kemudian meningkatkan kaunternya.
Ketuhar, seterusnya, memeriksa apabila bersentuhan:
if (!roomManager.AllCoalCollected) return;
Jika masih terdapat arang batu di dalam bilik, dapur akan kekal tidak aktif.
Apa maksudnya ini untuk permainan
Struktur ini mewujudkan tugasan yang disengajakan. Susuwatari mesti benar-benar meneroka setiap sudut bilik. Tiada penghantaran pramatang, tiada proses pengambilan yang terlewat.
Ini menyebabkan:
- matlamat tahap yang jelas
- pengurusan pemain yang lebih baik
- mekanik permainan yang boleh dikembangkan
Kemudian anda boleh menambah dengan mudah:
- iklan "2 bara lagi di dalam bilik"
- pintu yang hanya terbuka apabila semuanya telah dikumpulkan
- pelbagai jenis sumber dengan pengurus mereka sendiri
Mengapa seni bina ini bersih
Pemain hanya tahu bahawa mereka sedang mengumpul arang batu. Relau hanya tahu bahawa ia sedang menerima arang batu. Bilik itu tahu berapa banyak arang batu yang wujud. Setiap contoh mempunyai tugas yang jelas.
Pemisahan ini menghalang kod yang sukar dikawal dan menjadikan dunia Susuwatari boleh dikembangkan secara modular.
Kesimpulan
RoomCoalManager mungkin kelihatan sederhana, tetapi ia merupakan komponen utama mekanik tahap berstruktur Susuwatari. Ia mengurus sumber di peringkat bilik, memastikan pengumpulan dan penghantaran sumber dikaitkan secara logik. Daripada pemboleh ubah pengiraan yang mudah, ia berkembang menjadi gelung permainan yang terkawal dan boleh dikembangkan.
Lebih banyak artikel mengenai Permainan dan Puisi: The Pendulo Studios
