【Unity】Unity EditorとDevelopment Buildの時のみDebug.Logを出力する
まとめ
- System.Diagnostics.ConditionalAttributeをつけたメソッドを定義する。
- 指定したシンボルが定義されていない場合、
メソッド呼び出しを無視するようにコンパイラが処理してくれる。 - 複数のシンボルを設定した場合はOR条件となる。
実装例
Unity EditorまたはDevelopment Buildの時のみDebug.Logが出力される
using UnityEngine; namespace UtilityToolkit { public class DebugLogger { /// <summary> /// Logs a message to the Unity Console /// only when DEVELOPMENT_BUILD or UNITY_EDITOR is defined. /// </summary> /// <param name="message"></param> /// <returns></returns> [ System.Diagnostics.Conditional("DEVELOPMENT_BUILD"), System.Diagnostics.Conditional("UNITY_EDITOR"), ] public static void Log(object message) { Debug.Log(message); } /// <summary> /// Logs a warning message to the Unity Console /// only when DEVELOPMENT_BUILD or UNITY_EDITOR is defined. /// </summary> /// <param name="message"></param> /// <returns></returns> [ System.Diagnostics.Conditional("DEVELOPMENT_BUILD"), System.Diagnostics.Conditional("UNITY_EDITOR"), ] public static void LogWarning(object message) { Debug.LogWarning(message); } /// <summary> /// Logs an error message to the Unity Console /// only when DEVELOPMENT_BUILD or UNITY_EDITOR is defined. /// </summary> /// <param name="message"></param> /// <returns></returns> [ System.Diagnostics.Conditional("DEVELOPMENT_BUILD"), System.Diagnostics.Conditional("UNITY_EDITOR"), ] public static void LogError(object message) { Debug.LogError(message); } } }