Giả sử tôi có một biến có tên là buttonloại Buttontất nhiên System.Serializable.
Tôi muốn biến đó có thể được gán thông qua thanh tra, vì vậy tôi thực hiện nó public:
public class SomeScript : MonoBehaviour{
public Button button;
}
Điều này cho tôi rằng:
Bây giờ, tôi muốn giữ mã sạch và an toàn (có tổ chức) và có một lý do thực sự tại sao tôi cần phải bảo toàn việc đóng gói.
Tôi biết rằng có nhiều cách lấy các thành phần trong thời gian chạy như thế nào transform.Find("Some/Genius/TypeUnsafe/Path")hoặc GameObject.Find("3 seconds scene iteration").GetComponent(...).tôi muốn tránh điều đó.
Làm cách nào để trộn một biến private accessvới nó public accesstrong thanh tra?
UI/ API MVC/ MVVMmẫu cho một ứng dụng khổng lồ (thực sự là một ứng dụng khách trò chơi) và tôi phải tách ra UIkhỏi API. Tôi cần chỉ định giá trị thông qua nguyên nhân thanh tra - không còn cách nào khác. Find()các phương thức là loại không an toàn và việc kết hợp mọi thứ lại với nhau dễ dàng hơn bằng cách kéo và thả. Thật sự, rất khó để xây dựng một khung OOP cổ điển Unityvà bạn phải tìm kiếm những thứ hacky như thế này.

privatekhông thực sự có ý định ngăn một bên thứ ba tiếp cận với một lĩnh vực, điều đó có nghĩa là cung cấp một cách để nói "đừng nhìn vào bức màn về những gì tôi thực sự đang làm" - đó là, chủ yếu là một cách để giữ cho bạn không có quyền truy cập vào nó.