अपडेट को कैसे कहा जाता है
नहीं, एकता हर बार किसी को कॉल करने के लिए किसी मैजिक विधि को खोजने के लिए System.Reflection का उपयोग नहीं करती है।
इसके बजाय, पहली बार किसी दिए गए प्रकार के मोनोबोहेवियर को एक्सेस किया जाता है अंतर्निहित स्क्रिप्ट का निरीक्षण स्क्रिप्टिंग रनटाइम (या तो मोनो या IL2CPP) के माध्यम से किया जाता है, चाहे उसमें कोई भी मैजिक तरीके परिभाषित हों और यह जानकारी कैश्ड हो। यदि एक मोनोबेहवियर में एक विशिष्ट विधि है, तो इसे एक उचित सूची में जोड़ा जाता है, उदाहरण के लिए यदि किसी स्क्रिप्ट में अपडेट विधि परिभाषित है, तो इसे उन स्क्रिप्ट की सूची में जोड़ा जाता है, जिन्हें हर फ्रेम को अपडेट करने की आवश्यकता होती है।
खेल के दौरान एकता बस इन सूचियों के माध्यम से पुनरावृत्ति करती है और इससे विधियों को निष्पादित करती है - वह सरल। इसके अलावा, यही कारण है कि आपके अपडेट का तरीका सार्वजनिक या निजी होने से कोई फर्क नहीं पड़ता।
इस तरह से किए गए कारणों के लिए , मैं DMGregory के उत्तर में आपको (पाठक को) काफी हद तक संदर्भित करूंगा , जो दो प्रतिस्पर्धी चीजों के संतुलन को उबालता है :
- प्रदर्शन अनुकूलन
- नए डेवलपर उपयोग में आसानी
एक नया डेवलपर बस इसे काम करना चाहता है और यह पता लगाना नहीं चाहता है कि "मैं इसे इवेंट सिस्टम से कैसे जोड़ूं?" लेकिन यह अभी भी न्यूनतम ओवरहेड के साथ तेजी से चलना चाहिए।
समाधान शायद सबसे अच्छा है जो इन दो बाधाओं के भीतर प्राप्त किया जा सकता है । या कम से कम, सबसे अच्छा यूनिटी देव टीम उस समय के साथ आने में सक्षम थी। हम कभी नहीं जान सकते।