Diyelim ki elbette ki buttontype adlı bir değişkenim var .ButtonSystem.Serializable
Bu değişkenin müfettiş aracılığıyla atanabilir olmasını istiyorum, bu yüzden bunu yapıyorum public:
public class SomeScript : MonoBehaviour{
public Button button;
}
Bu da bana şunu veriyor:
Şimdi, kodu temiz ve güvenli (organize) tutmak istiyorum ve kapsüllemeyi korumamın gerçek bir nedeni var.
Çalışma zamanında bileşenleri almanın birden fazla yolu olduğunu biliyorum transform.Find("Some/Genius/TypeUnsafe/Path")veya bundan GameObject.Find("3 seconds scene iteration").GetComponent(...).kaçınmak istiyorum.
Nasıl bir değişken birbirine karıştırıyorsunuz private accessöyle ile public accessdenetçisindeki?
UI/ API MVC/ MVVMdev uygulama için desen (aslında bir oyun istemcisi) ve ben ayırmak zorunda UIdan API. Müfettiş aracılığıyla değerler atamam gerekiyordu, çünkü başka yolu yok. Find()yöntemleri güvensizdir ve sürükleyip bırakarak işleri bir araya getirmek daha kolaydır. Klasik bir OOP çerçevesi oluşturmak gerçekten, gerçekten zor Unityve bunun gibi hileli şeyler aramalısınız.

privateüçüncü bir tarafın bir alana erişmesini önlemek için tasarlanmamıştır, "gerçekten yaptığım şeye perdenin arkasına bakma" demek için bir yol sağlamak anlamına gelir - yani, çoğunlukla erişmenize engel olun .