मान लीजिए कि मेरे पास एक चर नाम buttonहै Buttonजो निश्चित रूप से है System.Serializable।
मैं चाहता हूं कि वह निरीक्षक के माध्यम से परिवर्तनशील हो, इसलिए मैं इसे बनाता हूं public:
public class SomeScript : MonoBehaviour{
public Button button;
}
जो मुझे देता है:
अब, मैं कोड को साफ और सुरक्षित (व्यवस्थित) रखना चाहता हूं और एक वास्तविक कारण है कि मुझे इनकैप्सुलेशन को संरक्षित करने की आवश्यकता है।
मुझे पता है कि रनटाइम पर घटकों को पुनः प्राप्त करने के कई तरीके हैं जैसे कि transform.Find("Some/Genius/TypeUnsafe/Path")या GameObject.Find("3 seconds scene iteration").GetComponent(...).मैं उससे बचना चाहता हूं।
मैं निरीक्षक में private accessइसके साथ एक चर कैसे public accessमिलाऊं?
UI/ API MVC/ MVVMएक विशाल आवेदन के लिए पैटर्न (वास्तव में एक खेल ग्राहक) और मैं अलग करने के लिए किया था UIसे API। मुझे इंस्पेक्टर कारण के माध्यम से मान निर्दिष्ट करने की आवश्यकता थी - कोई अन्य तरीका नहीं है। Find()विधियां असुरक्षित हैं, और चीजों को एक साथ खींचकर और गिराकर आसान है। यह वास्तव में, क्लासिक, ओओपी ढांचे के निर्माण के लिए वास्तव में कठिन है Unityऔर आपको इस तरह की हैकिंग चीजों की तलाश करनी होगी।

privateकिसी तीसरे पक्ष को किसी क्षेत्र में पहुंचने से रोकने के लिए वास्तव में इरादा नहीं है, यह कहने का एक तरीका है कि "मैं वास्तव में क्या कर रहा हूं, पर्दे के पीछे मत देखो" - यह ज्यादातर एक तरीका है आप उस तक पहुँच प्राप्त करने से रहें ।