Questa guida descrive come utilizzare il plug-in Memory Advice per Unity per integrare API Memory Advice in il 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 NDK utilizzata dalla tua installazione Unity, consulta il Guida alla configurazione dell'ambiente Android per Unity.
Scarica il plug-in
Scarica il plug-in.
Importa il plug-in
Il plug-in è un pacchetto Unity che puoi importare nel tuo progetto. Per importare
sul plug-in, fai clic su Assets > Importa pacchetto > Pacchetto personalizzato e seleziona
.unitypackage
file che hai scaricato. Puoi anche fare doppio clic
.unitypackage
dopo l'apertura del 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");
}
}
Sondaggio per lo stato della memoria
Puoi recuperare lo stato della memoria della tua app eseguendo il polling della libreria nella intervallo di tempo desiderato. Utilizza il valore di MemoryAdvice_getMemoryState ogni volta che devi eseguire un polling nella 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;
}
Configura uno smartwatch
Puoi anche configurare un visualizzatore e registrare l'API Memory Advice e la funzione watcher verrà chiamato quando lo stato sta per raggiungere il limite o stato memoria (ma non per lo stato ok). Ad esempio, il seguente codice crea un watcher e richiede una notifica 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");
}
Passaggio successivo
Puoi scaricare il nostro progetto di esempio Unity che fornisce una UI semplice per allocare e liberare memoria e utilizza API Memory Advice per monitorare lo stato della memoria.
Visualizza la panoramica per risorse aggiuntive e problemi relativi ai report.