Начало работы с API Memory Advice для игр Unity

В этом руководстве описывается, как использовать плагин Memory Advice для Unity, чтобы интегрировать API Memory Advice в вашу игру 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, который можно импортировать в свой проект. Чтобы импортировать плагин, выберите «Активы» > «Импорт пакета» > «Пользовательский пакет» и выберите загруженный файл .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;
}

Настройте наблюдателя

Вы также можете настроить наблюдателя и зарегистрировать API Memory Advice, и ваша функция-наблюдатель будет вызываться, когда состояние памяти приближается к пределу или к критическому (но не для состояния «ok»). Например, следующий код создаёт наблюдателя и запрашивает уведомление API Memory Advice каждые 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 , который предоставляет простой пользовательский интерфейс для выделения и освобождения памяти, а также использует API Memory Advice для мониторинга состояния памяти.

Ознакомьтесь с обзором для получения информации о дополнительных ресурсах и сообщениях о проблемах .