コンテンツにスキップ

プリプロセッサ

書き方説明注意
#nullable enablenull 安全の有効化
#if FLAG / #else / #endif条件つきコンパイル
#if UNITY_EDITOR編集中だけのコードこの例を通した経路では定義されていないので、囲んだ中はコンパイルされていません。
#region / #endregion#region による折りたたみコンパイルの結果は変わりません。
定義済みのシンボルコンパイルを実行する環境が決めます。UNITY_EDITOR を含め、1 つに決まりません

書いた行から先で、null 安全の検査が有効になります(null と参照)。

#nullable enable
using UnityEngine;
using Tsukimi;
public class PreNullableEnable : TsukimiBehaviour
{
void Start()
{
string s = "a";
Debug.Log(s.Length); // => 1
}
}
#define FLAG
using UnityEngine;
using Tsukimi;
public class PreConditional : TsukimiBehaviour
{
void Start()
{
#if FLAG
Debug.Log(1); // => 1
#else
Debug.Log(2);
#endif
}
}

UNITY_EDITOR は Unity エディタのためのシンボルです。

using UnityEngine;
using Tsukimi;
public class PreEditorOnly : TsukimiBehaviour
{
void Start()
{
#if UNITY_EDITOR
Debug.Log(1);
#endif
Debug.Log(2); // => 2
}
}

コードエディタで折りたためるようになります。

using UnityEngine;
using Tsukimi;
public class PreRegion : TsukimiBehaviour
{
#region 本体
void Start()
{
Debug.Log(1); // => 1
}
#endregion
}