यदि आप एक ही प्रीफ़ैब के कई उदाहरणों को तुरंत करने की योजना बना रहे हैं, तो आपको निश्चित रूप से ऑब्जेक्ट पूलिंग का उपयोग करने के बारे में सोचना चाहिए। यूनिटी के इंस्टेंटिअट फंक्शन को कॉल करना आपके द्वारा किए जा सकने वाले सबसे अधिक कर तरीकों में से एक है।
ऑब्जेक्ट पूलिंग तब होती है जब आप उपयोग किए जाने से पहले प्रीफ़ैब्स को इंस्टेंट करते हैं। वे तत्काल पर निष्क्रिय कर दिए जाते हैं और केवल तब ही सक्रिय होते हैं जब उनकी आवश्यकता होती है। जबकि यह मेमोरी उपयोग को बढ़ाता है, यह गेमप्ले के दौरान सीपीयू के तत्काल ओवरहेटिंग से बचा जाता है।
उदाहरण के लिए, मैं वर्तमान में एक बुलेट नरक गेम पर काम कर रहा हूं जिसके लिए रनटाइम पर सैकड़ों बुलेट की आवश्यकता होती है। मैंने शुरू में ऑब्जेक्ट पूलिंग के बिना खेल बनाने की कोशिश की लेकिन यह एक आपदा (2 एफपीएस से कम) होने के कारण समाप्त हो गया। अब, मैं खेल शुरू होने से पहले 500 गोलियां चलाता हूं और खेल आश्चर्यजनक रूप से तेज (200 एफपीएस) चलता है।
ऐसी परिस्थितियाँ हैं जहाँ ऑब्जेक्ट पूलिंग का उपयोग नहीं किया जा सकता है। उदाहरण के लिए, यदि आपके पास एक गेम है जहां खिलाड़ी इनपुट निर्धारित करता है कि प्रीफैब क्या है, तो आपके पास सामान्य इंस्टेंटेज कॉल का उपयोग करने के अलावा कोई विकल्प नहीं हो सकता है। ऑब्जेक्ट पूलिंग केवल तभी संभव है जब आप समय से पहले यह जान लें कि किन वस्तुओं की आवश्यकता होगी।
सेबस्टियन लेग्यू का YouTube ट्यूटोरियल ऑब्जेक्ट पूलिंग के बारे में जानने के लिए एक महान संसाधन है: https://youtu.be/LhqP3EghQ-Q