3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】ビルド時に大量に 'Editor' could not be foundのエラーが発生する場合の対処方法

Posted at

はじめに

ビルド時にAssets/*/Editorディレクトリ内のエディター関連のコードが含まれている際に以下のようなエラーが発生した際にどのような対応をされていますか?

Assets\*\Editor\*.cs(*,*): error CS0246: The type or namespace name 'Editor' could not be found (are you missing a using directive or an assembly refer

数ファイルだけなら以下のような方法でEdior環境でのみ動作するようにスクリプトを修正をするのもありだと思います。

尚、アセンブリを分けてないEditorディレクトリに配置していればこのエラーは発生しないようですので、asmdefが切られている配下のEditorディレクトリでのエラーが本記事の対象となります。(例えばUnityAssetStoreで購入したasmdefを使っているアセットだとこのエラーが発生しやすい傾向にあります。)

#if UNITY_EDITOR
public class MyScriptEditor: Editor {
... your custom editor code here ...
}
#endif

ただし、以下の事例のように数百ファイルでこのようなエラーが発生する場合には全ファイルを書き換える訳には行きませんよね?
このような事例に対応する方法を調べたのでFinalIKの場合を例に対処方法を共有させていただきます。

前提としてFinalIKでは RootMotion ディレクトリにFinalIK.asmdefファイルが配置されています。

image.png

対処方法

方法1 asmdefファイルをEditorディレクトリに配置する

Editorディレクトリ内にasmdefを配置して親のasmdefを参照させPlatformを Editor のみにチェックを入れる。
image.png

FinalIKの場合のみの注意事項
RootMotion/ImportAssemblyDefinitionsを実行することでasmdefを自動で作成できますが、何故かFinalIK.asmdefとコンフリクトするRootMotion.asmdefを生成してしまうので注意が必要です。

方法2 Assets/Editorディレクトリにファイルを移動する

親のasmdefの影響から除外するため Assets/Editor に移動する
image.png

最後に

方法2ではシンプルな対処方法になりますが、プロジェクトのディレクトリ構成が大きく変わってしまうのがデメリットになります。ある程度規模のプロジェクトだと方法1がおすすめです。

関連公式フォーラム

以上

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?