एकता में अद्यतन का उपयोग कैसे करें

Unity में अपडेट फ़ंक्शन एक अंतर्निहित फ़ंक्शन है जिसे प्रति फ्रेम एक बार कॉल किया जाता है और आमतौर पर गेम ऑब्जेक्ट की स्थिति को अपडेट करने और अन्य गेम लॉजिक को निष्पादित करने के लिए उपयोग किया जाता है। Unity कोड में अपडेट फ़ंक्शन का उचित उपयोग कैसे करें, इसके बारे में नीचे कुछ सुझाव दिए गए हैं।

1. 'Time.deltaTime'

चूंकि अपडेट फ़ंक्शंस को प्रति फ़्रेम एक बार कॉल किया जाता है, इसलिए यह सुनिश्चित करने के लिए 'Time.deltaTime' का उपयोग करना महत्वपूर्ण है कि अपडेट फ़्रेम-दर स्वतंत्र हैं। इसका मतलब यह है कि अपडेट फ्रेम दर की परवाह किए बिना समान दर पर निष्पादित होंगे, यह सुनिश्चित करते हुए कि गेम विभिन्न हार्डवेयर में लगातार व्यवहार करेगा।

उदाहरण के लिए, किसी वस्तु को स्थिर गति से ले जाने के लिए, गति वेक्टर को 'Time.deltaTime' से गुणा करना होगा ताकि यह सुनिश्चित हो सके कि वस्तु फ्रेम दर की परवाह किए बिना समान गति से चलती है:

void Update() {
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

2. महंगी गणनाओं से बचें

जैसा कि पहले उल्लेख किया गया है, चूंकि अपडेट को प्रति फ़्रेम एक बार कॉल किया जाता है, इसलिए महंगी गणना करने से बचना महत्वपूर्ण है जो प्रदर्शन को प्रभावित कर सकती है। उदाहरण के लिए, यदि कोई जटिल एल्गोरिदम है जिसे निष्पादित करने में लंबा समय लगता है, तो इसे एक अलग थ्रेड में ले जाना या इसे छोटे टुकड़ों में तोड़ना बेहतर हो सकता है जिसे कई फ़्रेमों पर निष्पादित किया जा सकता है।

3. भौतिकी के लिए FixedUpdate का प्रयोग करें

गेम में भौतिकी के साथ काम करते समय, अपडेट के बजाय FixedUpdate फ़ंक्शन का उपयोग करने की अनुशंसा की जाती है। FixedUpdate को एक निश्चित दर पर कॉल किया जाता है, जो भौतिकी समय चरण द्वारा निर्धारित होता है, और टकराव का पता लगाने और कठोर शरीर आंदोलन जैसी भौतिकी गणनाओं को संभालने के लिए डिज़ाइन किया गया है। भौतिकी गणना के लिए FixedUpdate का उपयोग यह सुनिश्चित करने में मदद कर सकता है कि गेम भौतिकी विभिन्न फ्रेम दर पर लगातार और सटीक रूप से व्यवहार करती है।

4. Coroutines का उपयोग करने पर विचार करें

ऐसा अपडेट करने के लिए जो फ़्रेम दर से बंधा नहीं है, अपडेट के बजाय Coroutine का उपयोग करना बेहतर हो सकता है। कॉरआउट्स किसी फ़ंक्शन के निष्पादन को एक निर्दिष्ट समय के लिए रोकने की कार्यक्षमता प्रदान करता है, बाद में इसे दुश्मनों को पैदा करने या एनीमेशन में देरी करने जैसे समय-आधारित अपडेट करने की अनुमति देता है।

IEnumerator SpawnEnemy() {
    while (true) {
        Instantiate(enemyPrefab, spawnPoint.position, Quaternion.identity);
        yield return new WaitForSeconds(spawnDelay);
    }
}

Coroutine शुरू करने के लिए बस एक बारStartCoroutine को कॉल करें, इस तरह:

StartCoroutine(SpawnEnemy());

Coroutine को रोकने के लिए, StopCoroutine विधि का उपयोग करें जो Coroutine, IEnumerator, या विधि नाम का संदर्भ लेता है (StartCoroutine से संदर्भ संग्रहीत करना और उसे रोकने के लिए उपयोग करना एक बेहतर दृष्टिकोण है क्योंकि यह जानता है कि Coroutine के किस उदाहरण को रोकना है) ):

Coroutine a = StartCoroutine(SpawnEnemy());

StopCoroutine(a);

निष्कर्ष

इन सर्वोत्तम प्रथाओं का पालन करने से यह सुनिश्चित हो जाएगा कि अपडेट फ़ंक्शंस का उपयोग Unity स्क्रिप्ट में ठीक से किया जाता है।