В этом руководстве описывается, как использовать плагин 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 для мониторинга состояния памяти.
См. обзор дополнительных ресурсов и проблем с отчетами .