テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

コンパイルエラー発生時でもエディタ拡張を使用する方法

今回は前回の応用で、プロジェクト内に必要なアセットが無い場合、AssetStoreからダウンロードしてもらう機能を作成してみました。

この機能の紹介はまた次回するとして、今回はエラーが発生した際でもエディタ拡張を使用する方法についてです。

コンパイルできないコードがプロジェクトに含まれる場合、ソースコードを正確に解釈する事が出来ないので、どう動いてよいのか分からず動作しません

Unityの場合、起動時にコンパイルエラーが含まれている場合、エディタのInspectorにこんな感じのUIが表示されたりします。

This associated script can not be loaded. Please fix any compile errors and assign a valid script.
(関連付けられたスクリプトをロードすることはできません。コンパイルエラーを修正し、有効なスクリプトを割り当てるしてください)

f:id:tsubaki_t1:20150718033507p:plain

で、今回作成した「Unityプロジェクト内にアセットが足りない場合はAssetStoreから持ってくるアセット」ですが、この「足りないアセット」にソースコードが含まれてしまっていた場合、プロジェクト起動時にコンパイルエラーを起こし、エディタ拡張が動作しません。

そこで、コンパイルエラー時でもエディタ拡張を動作させる方法についてです。

事前にコンパイルしてしまう

はい、これに尽きます。他のエラーが原因でコンパイルが通らないのであれば、すでにコンパイル済みのDLLとしてエディタに配置してやれば問題ない訳です。

まあ事前にビルドしてしまうためプラットフォーム依存コンパイルが使いにくくなる、バグが発生した時に追いにくい等の問題はありますが、動作しない問題は回避出来るので、これはこれで。

qiita.com

一旦コンパイルエラーの原因を取り除く

一度でもコンパイルが通れば、エディタ拡張が使用できるようになります。正確には、最後にコンパイルが通った時のエディタ拡張が動作します。

なので無理やりコンパイルエラーになるファイルをプロジェクト外に退避し、コンパイルエラーを通して戻す案も実はあったりします。