Unity oyunları için Bellek Advice API'sini kullanmaya başlama

Bu kılavuzda, Memory Advice API'yi Unity oyununuza entegre etmek üzere Unity için Memory Tavsiyesi eklentisini nasıl kullanacağınız açıklanmaktadır.

Şartlar

Eklenti şunlarda desteklenir:

  • Android NDK r19 ile Unity 2019

  • Android NDK r19 ile Unity 2020

  • Android NDK r21 ile Unity 2021

  • Android NDK r23 ile Unity 2022

Unity ve Android NDK'nın diğer sürümlerini kullanıyorsanız beklenmedik sorunlarla karşılaşabilirsiniz. Unity kurulumunuzda kullanılan NDK sürümünü bulmak için Unity ile ilgili Android ortamı kurulum kılavuzuna bakın.

Eklentiyi indirin

Eklentiyi indirin.

Eklentiyi içe aktarın

Eklenti, projenize aktarabileceğiniz bir Unity Paketidir. Eklentiyi içe aktarmak için Öğeler > Paketi İçe Aktar > Özel Paket'i tıklayın ve indirdiğiniz .unitypackage dosyasını seçin. Unity projenizi açtıktan sonra .unitypackage dosyasını çift tıklayabilirsiniz.

Kitaplığı kullanma

Bu bölümde, kitaplığın nasıl kullanılacağı açıklanmaktadır.

Kitaplığı başlatın

Uygulama başladığında kitaplığı ilk kullanıma hazırlamanız gerekir. Bunu yapmak için şu kodu projenize ekleyin:

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

Bellek durumu anketi

Kitaplığı istediğiniz zaman aralığında yoklayarak uygulamanızın bellek durumunu alabilirsiniz. Kitaplığı yoklamanız gerektiğinde MemoryAdvice_getMemoryState işlevini kullanın:

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

İzleyici ayarlama

Ayrıca bir izleyici ayarlayıp Memory Advice API'yi kaydedebilirsiniz. Durum sınıra veya kritik bellek durumuna yaklaştığında izleyici işleviniz çağrılır (ancak sorun iyi durumda olmaz). Örneğin, aşağıdaki kod bir izleyici oluşturur ve her 2 saniyede bir Memory Advice API bildirimi ister:

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

Sırada ne var?

Bellek ayırmak ve boşaltmak için basit bir kullanıcı arayüzü sağlayan ve bellek durumunu izlemek için Bellek Önerisi API'sini kullanan Unity örnek projemizi indirebilirsiniz.

Ek kaynaklar ve raporlama sorunları için genel bakışa göz atın.