コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity が確保したメモリの使用状況(Unity の使用メモリ)を取得するスクリプト

ソースコード

使用例

using System.Text;
using TMPro;
using UnityEngine;

public class Example : MonoBehaviour
{
    public TMP_Text m_text;

    private readonly UnityMemoryChecker m_unityMemoryChecker =
        new UnityMemoryChecker();

    private void Update()
    {
        m_unityMemoryChecker.Update();

        var sb = new StringBuilder();
        sb.AppendLine( "<b>Unity</b>" );
        sb.AppendLine();
        sb.AppendLine( $"    Used: {m_unityMemoryChecker.UsedText}" );
        sb.AppendLine( $"    Unused: {m_unityMemoryChecker.UnusedText}" );
        sb.AppendLine( $"    Total: {m_unityMemoryChecker.TotalText}" );

        var text = sb.ToString();
        m_text.text = text;
    }
}

上記のようなコードを記述することで

f:id:baba_s:20190325212751p:plain

f:id:baba_s:20190325212800p:plain

このように Profiler に表示されている Unity の使用メモリを取得できます

(おそらく Profiler のデータが使用しているメモリや
オーディオドライバが使用しているメモリなどが影響しているため
Profiler の数値と微妙に誤差があります)

ドキュメント

参考サイト様