Começar a usar a API Memory Advice para jogos Unity

Este guia descreve como usar o plug-in Memory Advice para Unity, integrando a API Memory Advice ao seu jogo Unity.

Requisitos

O plug-in oferece suporte a:

  • Unity 2019 com o Android NDK r19

  • Unity 2020 com o Android NDK r19

  • Unity 2021 com o Android NDK r21

  • Unity 2022 com o Android NDK r23

Talvez você enfrente problemas inesperados se estiver usando outras versões do Unity e do Android NDK. Para encontrar a versão do NDK usada pela instalação do Unity, consulte o Guia de configuração do ambiente Android para Unity.

Fazer o download do plug-in

Fazer o download do plug-in.

Importar o plug-in

O plug-in é um pacote do Unity que pode ser importado para seu projeto. Para importar o plug-in, clique em Assets > Import Package > Custom Package e selecione o arquivo .unitypackage que você salvou. Você também pode clicar duas vezes no arquivo .unitypackage depois de abrir seu projeto do Unity.

Usar a biblioteca

Esta seção descreve como usar a biblioteca.

Inicializar a biblioteca

É necessário inicializar a biblioteca quando o app for iniciado. Para fazer isso, adicione o código abaixo ao projeto:

void Start()
{
    MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
    if(errorCode == MemoryAdviceErrorCode.Ok)
    {
        Debug.Log("Memory advice init successfully");
    }
}

Pesquisar o estado da memória

É possível extrair o estado da memória do app pesquisando a biblioteca no intervalo que você quiser. Use a função MemoryAdvice_getMemoryState sempre que precisar pesquisar a 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;
}

Configurar um inspetor

Também é possível configurar um inspetor e registrar a API Memory Advice. A função de inspetor vai ser chamada quando o estado estiver se aproximando do limite ou do estado da memória crítico, mas não será chamada para o estado "ok". Por exemplo, o código abaixo cria um inspetor e solicita uma notificação da API Memory Advice a cada dois 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óxima etapa

Faça o download do nosso projeto de exemplo do Unity, que fornece uma IU simples para alocar e liberar memória e usa a API Memory Advice para monitorar o estado da memória.

Consulte a visão geral para saber mais sobre outros recursos e como informar problemas.