Unity गेम के लिए Memory Advice API का इस्तेमाल शुरू करना

इस गाइड में, Unity के लिए Memory Advice प्लगिन का इस्तेमाल करके, अपने Unity गेम में Memory Advice API को इंटिग्रेट करने का तरीका बताया गया है.

ज़रूरी शर्तें

यह प्लगिन इन पर काम करता है:

  • Android NDK r19 के साथ Unity 2019

  • Android NDK r19 के साथ Unity 2020

  • Android NDK r21 के साथ Unity 2021

  • Android NDK r23 के साथ Unity 2022

Unity और Android NDK के अन्य वर्शन इस्तेमाल करने पर, आपको कुछ समस्याएं आ सकती हैं. Unity इंस्टॉलेशन में इस्तेमाल किए गए NDK वर्शन का पता लगाने के लिए, Unity के लिए Android एनवायरमेंट सेटअप गाइड देखें.

प्लगिन डाउनलोड करना

प्लगिन डाउनलोड करें.

प्लगिन इंपोर्ट करना

यह प्लगिन एक यूनिटी पैकेज है. इसे अपने प्रोजेक्ट में इंपोर्ट किया जा सकता है. प्लगिन इंपोर्ट करने के लिए, ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज पर क्लिक करें. इसके बाद, डाउनलोड की गई .unitypackage फ़ाइल चुनें. यूनिटी प्रोजेक्ट खोलने के बाद, .unitypackage फ़ाइल पर दो बार क्लिक करके भी इसे इंपोर्ट किया जा सकता है.

लाइब्रेरी का इस्तेमाल करना

इस सेक्शन में, लाइब्रेरी को इस्तेमाल करने का तरीका बताया गया है.

लाइब्रेरी शुरू करना

ऐप्लिकेशन शुरू होने पर, आपको लाइब्रेरी को एक बार शुरू करना होगा. इसके लिए, अपने प्रोजेक्ट में यह कोड जोड़ें:

void Start()
{
    MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
    if(errorCode == MemoryAdviceErrorCode.Ok)
    {
        Debug.Log("Memory advice init successfully");
    }
}

मेमोरी की स्थिति के लिए पोल

अपनी पसंद के इंटरवल पर लाइब्रेरी को पोल करके, अपने ऐप्लिकेशन की मेमोरी की स्थिति को वापस लाया जा सकता है. जब भी आपको लाइब्रेरी को पोल करने की ज़रूरत हो, तब MemoryAdvice_getMemoryState फ़ंक्शन का इस्तेमाल करें:

MemoryState memoryState = MemoryAdvice.GetMemoryState();
switch (memoryState)
{
    case MemoryState.Ok:
        //The application can safely allocate memory.
        break;
    case MemoryState.ApproachingLimit:
        // The application should minimize memory allocation.
        break;
    case  MemoryState.Critical:
        // The application should free memory as soon as possible
        // until the memory state changes.
        break;
}

निगरानी करने वाले व्यक्ति का खाता सेट अप करना

वॉचर भी सेट अप किया जा सकता है. साथ ही, Memory Advice API को रजिस्टर किया जा सकता है. इसके बाद, जब स्थिति सीमा के करीब पहुंच रही होगी या मेमोरी की गंभीर स्थिति में होगी, तब वॉचर फ़ंक्शन को कॉल किया जाएगा. हालांकि, सामान्य स्थिति में ऐसा नहीं होगा. उदाहरण के लिए, यह कोड एक वॉचर बनाता है और हर दो सेकंड में Memory Advice API से सूचना पाने का अनुरोध करता है:

MemoryAdviceErrorCode errorCode = MemoryAdvice.RegisterWatcher(2000,
        new MemoryWatcherDelegateListener((MemoryState state) =>
    {
        switch (memoryState)
        {
            case MemoryState.ApproachingLimit:
                // The application should minimize memory allocation.
                break;
            case  MemoryState.Critical:
                // The application should free memory as soon as possible
                // until the memory state changes.
                break;
        }
    })
);

if(errorCode == MemoryAdviceErrorCode.Ok)
{
    Debug.Log("Memory Advice watcher registered successfully");
}

अगला कदम क्या है

हमारे Unity सैंपल प्रोजेक्ट को डाउनलोड किया जा सकता है. इसमें मेमोरी को असाइन करने और खाली करने के लिए, एक आसान यूज़र इंटरफ़ेस (यूआई) दिया गया है. साथ ही, यह मेमोरी की स्थिति को मॉनिटर करने के लिए, Memory Advice API का इस्तेमाल करता है.

अन्य संसाधनों और समस्याओं की शिकायत करने के लिए, खास जानकारी देखें.