איך מתחילים להשתמש ב-Memory Advantage API למשחקי Unity

במדריך הזה מוסבר איך להשתמש בתוסף Memory Advice ל-Unity כדי לשלב את Memory Advice API במשחק Unity.

דרישות

הפלאגין נתמך במערכות הבאות:

  • ‫Unity 2019 עם Android NDK r19

  • ‫Unity 2020 עם Android NDK r19

  • ‫Unity 2021 עם Android NDK r21

  • ‫Unity 2022 עם Android NDK r23

יכול להיות שתיתקלו בבעיות לא צפויות אם אתם משתמשים בגרסאות אחרות של Unity וב-Android NDK. כדי למצוא את גרסת ה-NDK שבה נעשה שימוש בהתקנת Unity, אפשר לעיין במדריך להגדרת סביבת Android ל-Unity.

הורדת הפלאגין

מורידים את הפלאגין.

ייבוא הפלאגין

התוסף הוא חבילת Unity שאפשר לייבא לפרויקט. כדי לייבא את הפלאגין, לוחצים על Assets > Import Package > Custom Package (נכסים > ייבוא חבילה > חבילה מותאמת אישית) ובוחרים את הקובץ .unitypackage שהורדתם. אפשר גם ללחוץ לחיצה כפולה על הקובץ .unitypackage אחרי שפותחים את הפרויקט ב-Unity.

שימוש בספרייה

בקטע הזה מוסבר איך משתמשים בספרייה.

הפעלת הספרייה

צריך להפעיל את הספרייה פעם אחת כשהאפליקציה מתחילה לפעול. כדי לעשות זאת, מוסיפים את הקוד הזה לפרויקט:

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, ואז פונקציית המעקב תופעל כשהמצב מתקרב למגבלה או למצב הזיכרון הקריטי (אבל לא למצב ok). לדוגמה, הקוד הבא יוצר רכיב מעקב ומבקש התראה מ-Memory Advice API כל 2 שניות:

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 כדי לעקוב אחרי מצב הזיכרון.

בסקירה הכללית מפורטים מקורות מידע נוספים ומוסבר איך מדווחים על בעיות.