🎮

UnityでAssembly Definition Fileを追加したらエディタでのコンパイルは通るがビルドできなくなった人が見るページ

に公開

はじめに

Assembly Definition Fileの概要は分かっている前提での説明です。

参考: Unity2017.3のAssembly Definition Filesを適切に設定してコンパイルにかかる時間を削減する - Qiita

原因

恐らくEditorディレクトリ以下をビルドしようとしていることが原因。

通常UnityではEditorディレクトリ以下はUnityエディタ上でのみ動作し、ビルドには含まれない扱いになる。実は内部的にEditorディレクト内にAssembly Definition Fileが定義されている状態である。

手動でAssembly Definition Fileを追加した場合、それ以下に含まれるEditorディレクトリではAssembly Definition Fileが作成されなくなることからビルド時にエラーが発生する。

解決方法

該当のEditorディレクトリに対し、手動でAssembly Definition Fileを定義してやればいい。

<img width="537" alt="スクリーンショット 2019-08-01 16.33.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55365/01b72d6e-f2a9-0926-b44d-23331eee72ea.png">

気をつけるポイントとしては以下の通りです。

  • PlatformEditorのみにする
    • Any Platformのチェックを外した状態で、Include PlatformsEditorのみにチェックに入れている状態
    • Any Platformのチェックが入った状態だとExclude Platforms(対象外のプラットフォーム)の表示になり、全く逆の状態であることに注意
  • Assembly Definition Referencesに親のAssembly Definition Fileを追加する
    • これをしないと恐らくエディタ上でもコンパイルエラーが発生する

最後に

いちいちコンパイルが走るので、作業量の割に時間がかかって面倒くさいけど、がんばってください

Discussion