Unity 无法从自定义程序集定义中查看 Assembly-CSharp.dll 程序集中的脚本

Kam*_*ely 4 unity-game-engine oculus

我已将程序集定义 (.asmdef) 添加到我的脚本文件夹(我的自定义统一脚本)。现在 Unity 抱怨它找不到我在我的脚本之一 (GameManager.cs) 中使用的 OVRInput 类: 在此输入图像描述

该 OVRInput 类被编译为Assembly-CSharp.dll托管程序集,如下所示:

在此输入图像描述

我希望 Unity 默认情况下能够看到这种依赖关系并解决它,但不知何故它没有。因此,我决定手动将“Assembly-CSharp.dll”添加到程序集的依赖项部分(称为“程序集定义引用”),但 Unity 给出错误,指出它无法找到这样的程序集。

以下是我的自定义程序集定义文件(将“ Scripts ”文件夹中的所有脚本放入程序集中):

在此输入图像描述

目标平台:Android (Oculus Gear VR) Unity 版本 2018.3.13f1。

Dra*_*18s 8

这就是重点

程序集定义(实际上)是完全独立的项目(同一解决方案的一部分,但独立的 dll)。事实上,这就是它们在 Visual Studio 的解决方案资源管理器中的显示方式。

它们应该是您引用的内容例如 TextMeshPro 或 JsonDotNet),而不是从中引用。因此,您无法引用主Assembly-Csharp“名称空间”。

优点是,当脚本文件更改时,仅重新编译其包含的程序集,而不是整个项目。

在这种情况下,如果您想引用 Oculus 文件,则需要创建另一个包含这些文件的程序集定义(并将其添加为第一个程序集的依赖项),或者根本不使用程序集定义。