Cómo comenzar a usar la API de Memory Advice para juegos de Unity

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 usa tu instalación de Unity, consulta la 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 Assets > Import Package > Custom Package y selecciona el archivo .unitypackage que descargaste. También puedes hacer doble clic en el archivo .unitypackage después de abrir el 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.