Dalam Susuwatari, hantu jelaga kecil mengumpul arang batu di dalam bilik. Tetapi untuk memastikan relau hanya diaktifkan setelah setiap keping arang batu ditemui, hanya mengiranya dalam sistem pemain tidak mencukupi. Di sinilah komunikasi antara pemain dan bilik memainkan peranan. PlayerCoalDetector melaporkan setiap kutipan yang dikumpul kepada Pengurus Arang Bilik.
Mengapa pelaporan lebih baik daripada mengira seorang diri dalam pemain
Jika hanya pemain mengira arang batu mereka sendiri, bilik itu tidak akan tahu berapa banyak yang wujud pada asalnya. Oleh itu, relau tidak dapat mengesahkan sama ada semuanya telah dikumpulkan.
Walau bagaimanapun, pengurus itu tahu:
- jumlah keseluruhan arang batu di dalam bilik
- bilangan objek yang telah dikumpulkan
Ini mewujudkan pihak berkuasa kawalan pusat.
Tugas PlayerCoalDetector
PlayerCoalDetector mempunyai dua tugas:
- Mainkan bunyi
- mengira arang batu
Sekarang tugas ketiga ditambah:
Dia memaklumkan kepada Pengurus Arang Bilik tentang setiap pengambilan yang berjaya.
Pelaksanaan teknikal
Pertama, PlayerCoalDetector menerima rujukan kepada pengurus:
public RoomCoalManager roomManager;
Selain meningkatkan inventori, pengurus akan dimaklumkan apabila barang dikumpulkan:
private void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Kohle")) return;
coalAmount++;
if (roomManager != null)
roomManager.RegisterCoalPickup();
Destroy(other.gameObject);
}
Setiap objek yang dikumpul meningkatkan dua nilai:
- arang batu dalam inventori Susuwatari
- arang batu yang terkumpul di dalam bilik
Mengapa pemisahan ini penting
Susuwatari sedang menjaga inventorinya.
Bilik itu menguruskan pengurusan sumbernya sendiri.
Kedua-dua sistem tidak bertanggungjawab ke atas yang lain. Struktur yang jelas ini memastikan bahawa:
- Ketuhar boleh diperiksa dengan teliti untuk memastikan semuanya telah dikumpulkan.
- ruang baharu boleh mempunyai pengurus mereka sendiri
- Pelbagai jenis sumber boleh ditambah dengan mudah kemudian.
Wujudkan sambungan dalam editor
Dalam Inspektor, anda tarik Pengurus Arang Bilik Hanya masukkan GameObject ke dalam medan roomManager pada PlayerCoalDetector. Ini mewujudkan rujukan antara kedua-dua komponen.
Secara alternatif, rujukan boleh dicari secara automatik dalam Awake, tetapi tugasan manual lebih telus dan terkawal.
Apa maksudnya ini untuk permainan Susuwatari
Logik pelaporan ini memastikan kemajuan yang terkawal. Susuwatari hanya boleh menghantar arang batu ke relau sebaik sahaja bilik itu dianggap kosong sepenuhnya.
Ini menghalang jalan pintas dan memastikan matlamat tahap yang jelas.
Kesimpulan
PlayerCoalDetector bukan sahaja mengendalikan pengumpulan tetapi juga komunikasi dengan Pengurus Arang BilikSetiap pengambilan dilaporkan, membolehkan bilik mengetahui statusnya. Seni bina modular ini menjadikan mekanik pengumpulan Susuwatari stabil, telus dan mudah dikembangkan.
Lebih banyak artikel mengenai Permainan dan Puisi: The Pendulo Studios
