以下の内容はhttps://baba-s.hatenablog.com/entry/2020/10/14/090000より取得しました。


【Unity】Debug.Log のスタックトレースの ON / OFF を using ステートメントで指定できるようにするクラス

ソースコード

使用例

特定の種類のログだけスタックトレースの ON / OFF を切り替え

using Kogane;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        // 通常のログはスタックトレースなし
        using ( new SetStackTraceLogTypeScope( LogType.Log, StackTraceLogType.None ) )
        {
            Debug.Log( "ピカチュウ" );
        }

        // 通常のログはスタックトレースあり
        using ( new SetStackTraceLogTypeScope( LogType.Log, StackTraceLogType.ScriptOnly ) )
        {
            Debug.Log( "ピカチュウ" );
        }
        
        // 通常のログはスタックトレースあり(ネイティブ)
        using ( new SetStackTraceLogTypeScope( LogType.Log, StackTraceLogType.Full ) )
        {
            Debug.Log( "ピカチュウ" );
        }
    }
}

すべての種類のログのスタックトレースの ON / OFF を切り替え

using Kogane;
using UnityEngine;

public class Example : MonoBehaviour
{
    private void Awake()
    {
        // スタックトレースなし
        using ( new SetStackTraceLogTypeScope( StackTraceLogType.None ) )
        {
            Debug.Log( "ピカチュウ" );
            Debug.LogWarning( "ピカチュウ" );
            Debug.LogError( "ピカチュウ" );
        }

        // スタックトレースあり
        using ( new SetStackTraceLogTypeScope( StackTraceLogType.ScriptOnly ) )
        {
            Debug.Log( "ピカチュウ" );
            Debug.LogWarning( "ピカチュウ" );
            Debug.LogError( "ピカチュウ" );
        }
        
        // スタックトレースあり(ネイティブ)
        using ( new SetStackTraceLogTypeScope( StackTraceLogType.Full ) )
        {
            Debug.Log( "ピカチュウ" );
            Debug.LogWarning( "ピカチュウ" );
            Debug.LogError( "ピカチュウ" );
        }
    }
}

用途

  • 例えばインゲームで毎フレームゲーム情報をログ出力したいが
    それをするとインゲームの動作が遅くなってしまう場合に
    インゲームでのみスタックトレースを無効化したいときなどに活用する想定



以上の内容はhttps://baba-s.hatenablog.com/entry/2020/10/14/090000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14