Katakanlah saya memiliki variabel bernama buttontipe Buttonyang 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 accessdengan variabel tersebut public accessdi inspektur?
UI/ API MVC/ MVVMpola 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 Unitydan Anda harus mencari hal-hal seperti ini.

privatetidak 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.