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 as 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
plug-in, clique em Assets > Importar pacote > Pacote personalizado e selecione as
.unitypackage
arquivo transferido por download. Você também pode clicar duas vezes no
.unitypackage
depois de abrir o 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.