En esta guía, se describe cómo usar el complemento de Memory Advice para Unity con el objetivo de integrar la API de Memory Advice en tu juego de Unity.
Requisitos
El complemento es compatible con lo siguiente:
Unity 2019 con el NDK de Android r19
Unity 2020 con el NDK de Android r19
Unity 2021 con el NDK de Android r21
Unity 2022 con el NDK de Android r23
Es posible que experimentes problemas inesperados si usas otras versiones de Unity y el NDK de Android. Para encontrar la versión del NDK que usó tu instalación de Unity, consulta el Guía de configuración del entorno de Android para Unity.
Descarga el complemento
Descarga el complemento.
Cómo importar el complemento
El complemento es un paquete de Unity que puedes importar a tu proyecto. Para importar
el complemento, haz clic en Recursos > Importar paquete > Custom Package y selecciona
.unitypackage
archivo que descargaste. También puedes hacer doble clic en el
.unitypackage
después de abrir tu proyecto de Unity.
Cómo usar la biblioteca
En esta sección, se describe cómo usar la biblioteca.
Cómo inicializar la biblioteca
Deberás inicializar la biblioteca una vez cuando se inicie la app. Para ello, agrega este código a tu proyecto:
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
Cómo hacer un sondeo para el estado de la memoria
Para recuperar el estado de la memoria de tu app, sondea la biblioteca en el intervalo que elijas. Usa la función MemoryAdvice_getMemoryState siempre que necesites sondear la biblioteca:
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;
}
Cómo configurar un observador
También puedes configurar un observador y registrar la API de Memory Advice. Se llamará a tu función de observador cuando el estado se acerque al límite o al estado crítico de la memoria (pero no para el estado correcto). Por ejemplo, el siguiente código crea un observador y solicita una notificación de la API de Memory Advice cada 2 segundos:
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");
}
Próximos pasos
Puedes descargar nuestro proyecto de muestra de Unity, que proporciona una IU simple para asignar y liberar memoria, y usa la API de Memory Advice para supervisar el estado de la memoria.
Consulta la descripción general para obtener más recursos y reportar problemas.