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

Bu kılavuzda, Unity için Memory Advice eklentisini kullanarak Memory Advice API'yi Unity oyununuza nasıl entegre edeceğiniz açıklanmaktadır.

Şartlar

Eklenti şu cihazlarda 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'nin 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ü öğrenmek için Unity'ye yönelik Android ortamı kurulum kılavuzuna bakın.

Eklentiyi indirin

Eklentiyi indirin.

Eklentiyi içe aktarma

Eklenti, projenize aktarabileceğiniz bir Unity paketidir. Eklentiyi içe aktarmak için Öğeler > Paket İç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ıklayarak da açabilirsiniz.

Kitaplığı kullanma

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

Kitaplığı başlatma

Uygulama başladığında kitaplığı bir kez başlatmanız gerekir. Bunu yapmak için projenize şu kodu ekleyin:

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

Bellek durumu için yoklama

Kitaplığı istediğiniz aralıklarla 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 oluşturma

Ayrıca bir izleyici ayarlayabilir ve Memory Advice API'yi kaydedebilirsiniz. Durum sınıra yaklaştığında veya kritik bellek durumuna ulaştığında (ancak iyi durumda değilken) izleyici işleviniz çağrılır. Örneğin, aşağıdaki kod bir izleyici oluşturur ve 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ırma ve boşaltma için basit bir kullanıcı arayüzü sağlayan ve bellek durumunu izlemek için Memory Advice API'yi kullanan Unity örnek projemizi indirebilirsiniz.

Ek kaynaklar ve bildirme sorunları için genel bakış bölümüne bakın.