Premiers pas avec l'API Memory Advice pour les jeux Unity

Ce guide explique comment utiliser le plug-in Memory Advice pour Unity afin d'intégrer l'API Memory Advice à votre jeu Unity.

Exigences

Le plug-in est compatible avec :

  • Unity 2019 avec le NDK Android r19

  • Unity 2020 avec le NDK Android r19

  • Unity 2021 avec le NDK Android r21

  • Unity 2022 avec le NDK Android r23

Vous pouvez rencontrer des problèmes inattendus si vous utilisez d'autres versions d'Unity et du NDK Android. Pour connaître la version NDK utilisée par votre installation Unity, consultez le guide de configuration de l'environnement Android pour Unity.

Télécharger le plug-in

Téléchargez le plug-in.

Importer le plug-in

Le plug-in est un package Unity que vous pouvez importer dans votre projet. Pour importer le plug-in, cliquez sur Assets > Import Package > Custom Package (Ressources > Importer un package > Package personnalisé), puis sélectionnez le fichier .unitypackage que vous avez téléchargé. Vous pouvez également double-cliquer sur le fichier .unitypackage après avoir ouvert votre projet Unity.

Utiliser la bibliothèque

Cette section explique comment utiliser la bibliothèque.

Initialiser la bibliothèque

Vous devez initialiser la bibliothèque au démarrage de l'application. Pour ce faire, ajoutez le code suivant à votre projet :

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

Interroger la bibliothèque sur l'état de la mémoire

Vous pouvez récupérer l'état de la mémoire de votre application en interrogeant la bibliothèque à l'intervalle de votre choix. Pour interroger la bibliothèque, utilisez la fonction MemoryAdvice_getMemoryState :

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;
}

Configurer un observateur

Vous pouvez également configurer un observateur et enregistrer l'API Memory Advice. Votre fonction d'observateur sera appelée lorsque l'état sera sur le point d'atteindre la limite ou lorsque l'état de la mémoire sera critique (mais pas pour l'état OK). Par exemple, le code suivant crée un observateur et demande une notification de l'API Memory Advice toutes les deux secondes :

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");
}

Étapes suivantes

Vous pouvez télécharger notre exemple de projet Unity qui fournit une interface utilisateur simple pour allouer et libérer de la mémoire, et qui utilise l'API Memory Advice pour surveiller l'état de la mémoire.

Consultez la présentation pour accéder aux ressources supplémentaires et en savoir plus sur les problèmes liés aux rapports.