開発中は有効にしたいけど、本番では呼び出したくないというテスト用メソッドがあると思う。
手っ取り早いのは、#if~#endifを使うのが簡単だが、それだとDefineが変わってコンパイルエラーが発生したり、#ifを沢山書いたりしなければならず、結構めんどうなこともある。
それらを解決できるのが、このConditionalAttributeだ。
using System.Collections; using System.Collections.Generic; using System.Diagnostics; using UnityEngine; public class ConditionalAttributeTest : MonoBehaviour { // Androidプラットフォームの時だけ、実行した [Conditional("UNITY_ANDROID")] private void DebugLog(string message) { UnityEngine.Debug.Log(message); } // Start is called before the first frame update void Start() { DebugLog("Call"); } // Update is called once per frame void Update() { } }
こうしておくと、プラットフォームがPCやIOSの時は実行されなくなる。そもそも、呼び出しが行われなくなるようだ。