Pierwsze kroki z interfejsem Memory Advice API dla gier na Unity

Z tego przewodnika dowiesz się, jak używać wtyczki Memory Advice w Unity, aby zintegrować interfejs Memory Advice API z grą w Unity.

Wymagania

Wtyczka jest obsługiwana w tych systemach:

  • 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 pakietu Android NDK, możesz napotkać nieoczekiwane problemy. Aby sprawdzić wersję NDK używaną przez Twoją instalację Unity, zapoznaj się z przewodnikiem po konfigurowaniu środowiska Androida w Unity.

Pobieranie wtyczki

Pobierz wtyczkę.

Importowanie wtyczki

Wtyczka jest pakietem Unity, który możesz zaimportować do projektu. Aby zaimportować wtyczkę, kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet) i wybierz pobrany plik .unitypackage. Możesz też dwukrotnie kliknąć plik .unitypackage po otwarciu projektu Unity.

Korzystanie z biblioteki

Z tej sekcji dowiesz się, jak korzystać z biblioteki.

Inicjowanie biblioteki

Bibliotekę trzeba zainicjować raz po uruchomieniu 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");
    }
}

Sprawdzanie stanu pamięci

Stan pamięci aplikacji możesz odzyskać, odpytując bibliotekę w wybranym przez siebie odstępie czasu. Używaj funkcji MemoryAdvice_getMemoryState za każdym razem, gdy chcesz sprawdzić stan biblioteki:

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

Konfigurowanie obserwatora

Możesz też skonfigurować obserwatora i zarejestrować interfejs Memory Advice API. Funkcja obserwatora zostanie wywołana, gdy stan będzie zbliżać się do limitu lub osiągnie krytyczny stan pamięci (ale nie w przypadku stanu ok). Na przykład ten kod tworzy obserwatora i co 2 sekundy wysyła żądanie powiadomienia z interfejsu Memory Advice API:

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 zawiera prosty interfejs użytkownika do przydzielania i zwalniania pamięci oraz korzysta z interfejsu Memory Advice API do monitorowania stanu pamięci.

Więcej informacji znajdziesz w omówieniu, dodatkowych materiałachinformacjach o zgłaszaniu problemów.