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