Unity 게임용 Memory Advice API 시작하기

이 가이드에서는 Unity용 Memory Advice 플러그인을 사용하여 Memory Advice API를 Unity 게임에 통합하는 방법을 설명합니다.

요구사항

플러그인은 다음에서 지원됩니다.

  • Android NDK r19를 사용하는 Unity 2019

  • Android NDK r19를 사용하는 Unity 2020

  • Android NDK r21을 사용하는 Unity 2021

  • Android NDK r23을 사용하는 Unity 2022

다른 버전의 Unity와 Android NDK를 사용하는 경우 예기치 않은 문제가 발생할 수 있습니다. Unity 설치에 사용되는 NDK 버전을 찾으려면 Unity용 Android 환경 설정 가이드를 참고하세요.

플러그인 다운로드

플러그인을 다운로드합니다.

플러그인 가져오기

플러그인은 프로젝트에 가져올 수 있는 Unity 패키지입니다. 플러그인을 가져오려면 Assets(애셋) > Import Package(패키지 가져오기) > Custom Package(맞춤 패키지)를 클릭하고 다운로드한 .unitypackage 파일을 선택합니다. Unity 프로젝트를 연 후 .unitypackage 파일을 더블클릭해도 됩니다.

라이브러리 사용

이 섹션에서는 라이브러리 사용 방법을 설명합니다.

라이브러리 초기화

앱이 시작되면 라이브러리를 한 번 초기화해야 합니다. 프로젝트에 다음 코드를 추가하면 됩니다.

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

메모리 상태 폴링

지정한 간격으로 라이브러리를 폴링하여 앱의 메모리 상태를 가져올 수 있습니다. 라이브러리를 폴링해야 할 때마다 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;
}

감시자 설정

감시자를 설정하고 Memory Advice API를 등록할 수도 있습니다. 상태가 한계에 가까워지거나 중요한 메모리 상태가 되면 감시자 함수가 호출됩니다(일반적인 상태에서는 호출되지 않음). 예를 들어, 다음 코드는 감시자를 만들고 2초마다 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");
}

다음 단계

메모리 할당 및 해제를 위한 간단한 UI를 제공하고 Memory Advice API를 사용하여 메모리 상태를 모니터링하는 Unity 샘플 프로젝트를 다운로드할 수 있습니다.

추가 리소스문제 보고개요를 참고하세요.