Questa guida descrive come utilizzare il plug-in Memory Advice per Unity per integrare l'API Memory Advice nel tuo gioco Unity.
Requisiti
Il plug-in è supportato su:
Unity 2019 con Android NDK r19
Unity 2020 con Android NDK r19
Unity 2021 con Android NDK r21
Unity 2022 con Android NDK r23
Potresti riscontrare problemi imprevisti se utilizzi altre versioni di Unity e Android NDK. Per trovare la versione dell'NDK utilizzata dall'installazione di Unity, consulta la guida alla configurazione dell'ambiente Android per Unity.
Scarica il plug-in
Scarica il plug-in.
Importare il plug-in
Il plug-in è un pacchetto Unity che puoi importare nel tuo progetto. Per importare
il plug-in, fai clic su Assets > Import Package > Custom Package e seleziona il file
.unitypackage
che hai scaricato. Puoi anche fare doppio clic sul file
.unitypackage
dopo aver aperto il progetto Unity.
Utilizzare la libreria
Questa sezione descrive come utilizzare la libreria.
Inizializzare la libreria
Devi inizializzare la libreria una volta all'avvio dell'app. Per farlo, aggiungi questo codice al tuo progetto:
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
Esegui il polling dello stato della memoria
Puoi recuperare lo stato della memoria della tua app eseguendo il polling della libreria all'intervallo che preferisci. Utilizza la funzione MemoryAdvice_getMemoryState ogni volta che devi eseguire il polling della libreria:
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;
}
Configurare un osservatore
Puoi anche configurare un watcher e registrare l'API Memory Advice. La funzione watcher verrà chiamata quando lo stato si avvicina al limite o allo stato critico della memoria (ma non per lo stato ok). Ad esempio, il seguente codice crea un watcher e richiede una notifica dell'API Memory Advice ogni 2 secondi:
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");
}
Passaggi successivi
Puoi scaricare il nostro progetto di esempio Unity che fornisce una semplice UI per allocare e liberare memoria e utilizza l'API Memory Advice per monitorare lo stato della memoria.
Consulta la panoramica per risorse aggiuntive e segnalazione di problemi.