困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

C#の話~ConditionalAttributeの話~

smdn.jp

開発中は有効にしたいけど、本番では呼び出したくないというテスト用メソッドがあると思う。
手っ取り早いのは、#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の時は実行されなくなる。そもそも、呼び出しが行われなくなるようだ。