Unityのテスト(NUnit)でVRCSDKのコンポーネントが参照できない問題にぶつかったので、対処方法を書きます。
前提として、テストコードで自作クラスを参照するにはUnityでライブラリの参照を設定しなければなりません。
設定方法は以下の記事で紹介されていました。
https://qiita.com/kazukomati/items/d5f5bec204ce99ee7ad5
そして、VRChat SDKを参照する場合にも、Unityでライブラリの参照を設定する必要があります。
VRChat SDKのライブラリの参照設定方法
- テストコードを置いているフォルダ内の*.asmdefをクリック
- インスペクタの項目のAssembly References(下記画像赤囲み)でVRCSDKA.dllやVDCSDKBase.dllなどの必要なライブラリを追加
- Applyを押す
Assembly Referencesに追加するライブラリは、テストで参照したいコンポーネントによりますが
VRCAvatarDescripter,PipelineManager,VRCPhysBoneを参照する場合は、画像のライブラリが必要でした。
経緯
VRChatのアバターの再設定を簡単にするための、VRoidAvatarSetupUtilsというUnityエディタ拡張を作っています。
このアプリのテストをUnity Test Runner(NUnit)で書いており、テストコードに以下のような処理を書きました。
VRCAvatarDescriptor sourceVRCAvatarDescriptor = (VRCAvatarDescriptor)sourceObject.GetComponent<VRCAvatarDescriptor>();
GameObject.DestroyImmediate(sourceVRCAvatarDescriptor);
VRCAvatarDescriptorコンポーネントを参照するためにライブラリの参照が必要なのは分かるが、どこから設定すればよいのか分からない…という感じでしばらくハマっていました。