コンテンツにスキップ

プリプロセッサ

書き方説明
#nullable enablenull 安全の有効化
#if FLAG / #else / #endif条件つきコンパイル
#if UNITY_EDITOR編集中だけのコード
#region / #endregion折りたためる区間

どのシンボルが定義済みかは、ソースを取り込む側が決めます。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);
#else
Debug.Log(2);
#endif
}
}
// 出力
// 1

UNITY_EDITOR は編集画面のためのシンボルです。この例を通した経路では定義されていないので、囲んだ中はコンパイルされていません。

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
}