Katakanlah saya memiliki variabel bernama button
tipe Button
yang tentu saja System.Serializable
.
Saya ingin variabel itu dapat ditetapkan melalui inspektur, jadi saya membuatnya public
:
public class SomeScript : MonoBehaviour{
public Button button;
}
Yang memberi saya itu:
Sekarang, saya ingin menjaga kode bersih & aman (terorganisir) dan ada alasan nyata mengapa saya harus menjaga enkapsulasi.
Saya tahu bahwa ada beberapa cara untuk mengambil komponen pada runtime seperti transform.Find("Some/Genius/TypeUnsafe/Path")
atau GameObject.Find("3 seconds scene iteration").GetComponent(...).
saya ingin menghindarinya.
Bagaimana cara mencampur variabel private access
dengan variabel tersebut public access
di inspektur?
UI
/ API
MVC
/ MVVM
pola untuk aplikasi besar (klien game sebenarnya) dan saya harus memisahkanUI
dari API
. Saya perlu menetapkan nilai melalui penyebab inspektur hanya - tidak ada cara lain. Find()
metode mengetik tidak aman, dan lebih mudah untuk menyatukan semuanya dengan menyeret & menjatuhkan. Sangat sulit untuk membangun kerangka kerja OOP klasik Unity
dan Anda harus mencari hal-hal seperti ini.
private
tidak benar-benar dimaksudkan untuk mencegah pihak ketiga dari mendapatkan akses ke lapangan, itu dimaksudkan untuk memberikan cara untuk mengatakan "jangan melihat ke balik tirai pada apa yang sebenarnya saya lakukan" - yaitu, itu sebagian besar cara untuk membuat Anda tidak mendapatkan akses ke sana.