Unity не может видеть сценарии в сборке Assembly-CSharp.dll из определения пользовательской сборки - PullRequest
0 голосов
/ 20 апреля 2019

Я добавил определение сборки (.asmdef) в свою папку сценариев (мои собственные сценарии единства). Теперь Unity жалуется, что не может найти класс OVRInput, который я использовал в одном из моих скриптов (GameManager.cs): enter image description here

Этот класс OVRInput скомпилирован в Assembly-CSharp.dll управляемая сборка, как показано ниже:

enter image description here

Я ожидаю, что Unity по умолчанию увидит эту зависимость и разрешит ее, но почему-то это не так. Поэтому я решил вручную добавить «Assembly-CSharp.dll» в раздел зависимостей (называемый «Ссылки на определение сборки») моей сборки, но Unity выдает ошибку, что не может найти такую ​​сборку.

Ниже приведен мой пользовательский файл определения сборки (который помещает все скрипты в папку " Scripts " в сборку):

enter image description here

Целевая платформа: Android (Oculus Gear VR) Версия Unity 2018.3.13f1.

1 Ответ

1 голос
/ 20 апреля 2019

В этом вся суть

Определения сборки (фактически) являются совершенно отдельными проектами (частью одного и того же решения, но отдельными библиотеками).Это на самом деле, как они отображаются в обозревателе решений Visual Studio.

Они предназначены для того, чтобы вы ссылались в на (например, TextMeshPro или JsonDotNet), а не из изТаким образом, вы не можете ссылаться на основное Assembly-Csharp «пространство имен».

Преимущество состоит в том, что при изменении файла сценария перекомпилируется только содержащая его сборка вместо всего проекта.

В этом случае , если вы хотите сослаться на файлы Oculus, вам нужно либо создать другое определение сборки, содержащее эти файлы (и добавить его в качестве зависимости вашей первой сборки) , либо не использоватьопределение сборки вообще.

...