以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/01/11/233952より取得しました。


Unityエディター上で実行するコードを切り替える

本日はUnityの小ネタ枠です。
Unityエディター上で実行するコードを切り替える方法についてです。

Unityエディター上で実行するコードを切り替える

Unityエディター上で実行するコードを切り替える方法は大きく以下の2つあります。
・Application.isEditor
・UNITY_EDITOR

Application.isEditor

Application.isEditorはアプリがUnityエディター上で実行されているかどうかを判定します。
Unityエディター上で実行している場合、本プロパティは true を返します。
docs.unity3d.com

if (Application.isEditor) {
    // Unityエディター上で動作するコード
    Debug.Log("On Unity Editor");
} else {
    // それ以外で動作するコード
    Debug.Log("Not On Unity Editor");
}

UNITY_EDITOR

UNITY_EDITORはUnityで定義されるスクリプトシンボルです。
Unityエディターで実行されるとき、本スクリプトシンボルが定義されます。
これにより、C#言語のディレクティブを使ってエディター上でのみ有効になるコードを記述できます。
docs.unity3d.com

#if UNITY_EDITOR
    // Unityエディター上で動作するコード
    Debug.Log("On Unity Editor");
#else
    // それ以外で動作するコード
    Debug.Log("Not On Unity Editor");
#endif

Application.isEditorとUNITY_EDITORの違い

UNITY_EDITORを利用する場合、コードそのものをコンパイルに含めるかどうかを切り替えることができます。
例えば実機上でのみ利用できるライブラリを参照するコードをUNITY_EDITORを利用することでエディター上ではコード自体を無効化できます。

サンプルスクリプト

Unityエディター上とそうでない場合でテキストメッセージを切り替える以下のサンプルスクリプトを作成しました。
・IidefTest.cs

using TMPro;
using UnityEngine;

public class IidefTest : MonoBehaviour
{
    [SerializeField]
    private TMP_Text textComponent;

    [SerializeField]
    private TMP_Text textComponent2;
    
    void Start()
    {
        // エディター上でのみ有効なコード
        if (Application.isEditor)
        {
            textComponent.text = "On Unity Editor";
        }
        else
        {
            textComponent.text = "Not On Unity Editor";
        }
        
        // エディター上でのみ有効なコード
        #if UNITY_EDITOR
        textComponent2.text = "On Unity Editor";
        #else
        textComponent2.text = "Not On Unity Editor";
        #endif
    }
}


Unityエディター実行時


実行ファイルでの実行時




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/01/11/233952より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

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