前提・実現したいこと
Unityのスクリプトで困っています。
現在、Unityのエディタ拡張を行っているのですが。
Assembly-CSharpプロジェクト内のファイル内に作成したインターフェイスを
Assembly-CSharp-Editorプロジェクト内のファイル内で参照したいのですが。
参照できません。
色々調べてみましたが、全然わからないので
分かる方がいらっしゃったら教えていただきたいです。
例)
C#
1// Assembly-CSharp内のTestInterfaceファイル 2public interface ITest{...} 3
C#
1// Assembly-CSharp-Editor内のTestファイル 2public class Test : ITest{...} // ITestを参照できないため赤波線が表示されている状態 3
> Assembly-CSharpプロジェクト内のファイル内に作成したインターフェイスを
> Assembly-CSharp-Editorプロジェクト内のファイル内で参照したいのですが。
> 参照できません。
というのは以下のどちらでしょうか?
- Unityエディタ上で、TestはEditorディレクトリに格納し、ITestはそうでないディレクトリに存在している
- VisualStudioなどで、Assembly-CSharpプロジェクトやAssembly-CSharp-Editorプロジェクトを開き、そこに追加をしている
後者であれば、「プロジェクトファイルはUnityによって自動で更新される」という仕様上、それの設定を変更すること自体正しくないと思います。
基本的にUnityでは、ビルドしたいスクリプトファイルはAssetsディレクトリ内に用意する必要があり、Editorという名前のディレクトリの中にあるスクリプトはAssembly-CSharp-Editor、それ以外はAssembly-CSharpに自動で設定されます。
そのため、新規にスクリプトを追加したい場合は、VisualStudioではなくUnityエディタから追加することになります。
Unity は Visual Studio を単なるスクリプトエディタとして利用しています。VS を Unity のスクリプトエディタとして使っている場合は、アセンブリ間の参照設定などは設定しません。やる必要がありませんし、やっても意味がありませんし、やったら問題が起きるでしょう。