Pierwsze kroki z interfejsem Memory Advice API dla gier na Unity

Z tego przewodnika dowiesz się, jak korzystać z wtyczki Memory Advice do Unity, by zintegrować Memory Advice API ze swoją grą na Unity.

Wymagania

Wtyczka jest obsługiwana na tych urządzeniach:

  • Unity 2019 z Androidem NDK r19

  • Unity 2020 z Androidem NDK r19

  • Unity 2021 z Androidem NDK r21

  • Unity 2022 z Androidem NDK r23

Jeśli używasz innych wersji Unity i Androida NDK, możesz napotkać nieoczekiwane problemy. Aby znaleźć wersję NDK używaną w instalacji Unity, zajrzyj do przewodnika po konfiguracji środowiska Android dla Unity.

Pobierz wtyczkę

Pobierz wtyczkę.

Importowanie wtyczki

Jest to pakiet Unity, który możesz zaimportować do projektu. Aby zaimportować wtyczkę, kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Pakiet niestandardowy) i wybierz pobrany plik .unitypackage. Po otwarciu projektu Unity możesz też dwukrotnie kliknąć plik .unitypackage.

Korzystanie z biblioteki

W tej sekcji opisano, jak korzystać z biblioteki.

Inicjowanie biblioteki

Musisz zainicjować bibliotekę raz podczas uruchamiania aplikacji. Aby to zrobić, dodaj do projektu ten kod:

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

Sonda dotycząca stanu pamięci

Stan pamięci aplikacji możesz pobrać, przeprowadzając odpytywanie biblioteki z wybranym interwałem. Jeśli musisz przeprowadzić sondowanie biblioteki, użyj funkcji 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;
}

Skonfiguruj obserwatora

Możesz też skonfigurować obserwator i zarejestrować interfejs Memory Advice API. Funkcja obserwacyjna będzie wywoływana, gdy stan zbliży się do limitu lub do krytycznego stanu pamięci (ale nie dla stanu OK). Na przykład ten kod tworzy obserwatora i żąda powiadomienia do interfejsu Memory Advice API co 2 sekundy:

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

Co dalej

Możesz pobrać nasz przykładowy projekt Unity, który udostępnia prosty interfejs do przydzielania i zwalniania pamięci, a także używa interfejsu Memory Advice API do monitorowania stanu pamięci.

W omówieniudodatkowych materiałów i problemów z raportowaniem dowiesz się.