Erste Schritte mit der Memory Advice API für Unity-Spiele

In dieser Anleitung wird beschrieben, wie Sie das Memory Advice-Plug-in für Unity verwenden, um die Memory Advice API in Ihr Unity-Spiel einzubinden.

Voraussetzungen

Das Plug-in wird auf folgenden Plattformen unterstützt:

  • Unity 2019 mit Android NDK r19

  • Unity 2020 mit Android NDK r19

  • Unity 2021 mit Android NDK r21

  • Unity 2022 mit Android NDK r23

Wenn Sie andere Versionen von Unity und dem Android NDK verwenden, können unerwartete Probleme auftreten. Informationen zur NDK-Version, die von Ihrer Unity-Installation verwendet wird, finden Sie in der Anleitung zum Einrichten der Android-Umgebung für Unity.

Plug-in herunterladen

Laden Sie das Plug-in herunter.

Plug-in importieren

Das Plug-in ist ein Unity-Paket, das Sie in Ihr Projekt importieren können. Klicken Sie zum Importieren des Plug-ins auf Assets > Import Package > Custom Package und wählen Sie die heruntergeladene .unitypackage-Datei aus. Sie können auch auf die Datei .unitypackage doppelklicken, nachdem Sie Ihr Unity-Projekt geöffnet haben.

Bibliothek verwenden

In diesem Abschnitt wird beschrieben, wie Sie die Bibliothek verwenden.

Bibliothek initialisieren

Sie müssen die Bibliothek einmal beim Start der App initialisieren. Fügen Sie dazu Ihrem Projekt den folgenden Code hinzu:

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

Arbeitsspeicherstatus abfragen

Sie können den Speicherstatus Ihrer App abrufen, indem Sie die Bibliothek in einem von Ihnen gewählten Intervall abfragen. Verwenden Sie die Funktion MemoryAdvice_getMemoryState, wenn Sie die Bibliothek abfragen müssen:

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

Beobachter einrichten

Sie können auch einen Watcher einrichten und die Memory Advice API registrieren. Ihre Watcher-Funktion wird dann aufgerufen, wenn sich der Status dem Grenzwert oder dem kritischen Speicherstatus nähert (aber nicht für den Status „OK“). Mit dem folgenden Code wird beispielsweise ein Watcher erstellt und alle 2 Sekunden eine Benachrichtigung über die Memory Advice API angefordert:

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

Nächste Schritte

Sie können unser Unity-Beispielprojekt herunterladen, das eine einfache Benutzeroberfläche zum Zuweisen und Freigeben von Arbeitsspeicher bietet und die Memory Advice API zum Überwachen des Arbeitsspeicherstatus verwendet.

Zusätzliche Ressourcen und Informationen zum Melden von Problemen finden Sie in der Übersicht.