前書き
アセットに付属されているソースコードを見ると頭に「#if 文字列 ~#endif」といった記述があるときがあります。ものによってはこの「#if 文字列 ~#endif」を有効にしないと動かないソースコードもあったりしていろいろと謎な記述になっていますが、ソースコードを構成する要素として必要なものなのでぜひこの機会に覚えていただけると幸いです。
どんなときに#if 文字列 ~#endifが出てくるのか?
個人開発などでコーディングするときはあまり#if 文字列 ~#endifを使わないと思いますが例えば、DOTweenを組み込んでいるアセットのソースコードを見ると以下のように記載していることが多々あります。
![プリプロセッサのソースコード](https://aquaregia31.com/wp-content/uploads/2023/10/ifendif.png)
上記の記載の意味としては「“DOTWEEN”という文字列がコンパイルするときにあればDG.Tweening(DOTweenを使うためのusing)を有効にしますよ」という意味になります。
Unityでコンパイルするときに”DOTWEEN”の文字列を設定するには
#if 文字列 ~#endifで宣言する文字列はものによっていろいろありますが、今回の一例として”DOTWEEN”の文字列を宣言します。
設定場所はEdit->Project Settings->Playerの項目から下のほうにある
Other Settings->Scripting Define Symbols
で設定することができます。
Scripting Define Symbolsの”+”から行を追加して”DOTWEEN”を入力することでコンパイルするときに”DOTWEEN”の文字列を読み込んでくれます。設定した例が以下になります。
![ScriptingDefineSymbolsにDOTWEENを設定した図](https://aquaregia31.com/wp-content/uploads/2023/10/Define.png)
上記の状態でコンパイルを実行すると#if DOTWEEN ~#endifで囲われた部分が有効になり実行されるようになります。
逆に言うと、上記の部分に対象となる文字列を入れないと処理が動かないためアセットを使うときにあれ?動かないぞ?っとなったときはもしかしたら#if 文字列 ~#endifで囲っているスクリプトがあり、Scripting Define Symbolsに対象となる文字列を入れてあげる必要があるかもしれません。
まとめ
今回は#if~#endif(プリプロセッサ)を有効にする方法について紹介しました。
個人開発ではなかなかお目にすることがないかもしれませんが、いろいろなアセット(よく見るのはテンプレートやTool系)を使っていくと#if 文字列 ~#endifを使用しているソースコードがあります。普段の開発では気にしなくていいと思いますが、新しいアセットなどをプロジェクトに組み込むときは軽くソースコードの頭を見てみて#if 文字列 ~ #endif で宣言していないことを見てみるといいかもしれません。
コメント