このガイドでは、Unity 用 Memory Advice プラグインを使用して、Memory Advice API を Unity ゲームに統合する方法について説明します。
要件
このプラグインは次の環境で使用できます。
Unity 2019 と Android NDK r19
Unity 2020 と Android NDK r19
Unity 2021 と Android NDK r21
Unity 2022 と Android NDK r23
上記以外のバージョンの Unity と Android NDK を使用している場合、予期しない問題が発生する可能性があります。Unity のインストールで使用されている NDK バージョンを確認するには、以下をご覧ください。 Android 環境設定ガイド 説明します。
プラグインをダウンロードする
プラグインをダウンロードします。
プラグインをインポートする
このプラグインは、プロジェクトにインポートできる Unity パッケージです。インポート
[Assets] >パッケージをインポート >カスタム パッケージ] を選択し、
.unitypackage
個のファイルをダウンロードしました。行をダブルクリックして
Unity プロジェクトを開いたら、.unitypackage
ファイルを開きます。
ライブラリを使用する
このセクションでは、ライブラリの使用方法について説明します。
ライブラリを初期化する
アプリの起動時に 1 回、ライブラリを初期化する必要があります。 そのために、次のコードをプロジェクトに追加します。
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 を登録することもできます。これにより、メモリ状態が上限に近づいた際、またはひっ迫した際に、ウォッチャー関数が呼び出されるようにできます(ただし OK 状態では呼び出されません)。たとえば、次のコードでは、ウォッチャーを作成して 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");
}
次のステップ
Unity サンプル プロジェクトをダウンロードします。このサンプル プロジェクトでは、メモリの割り当てと解放を行うシンプルな UI を用意し、Memory Advice API を使用してメモリの状態をモニターします。
Memory Advice API の概要で、参考情報および問題とフィードバックについてご確認ください。