Начало работы с 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 для мониторинга состояния памяти.

См. обзор дополнительных ресурсов и проблем с отчетами .