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

Unity Cannot See the Scripts in Assembly-CSharp.dll assembly from a Custom Assembly Definition

我已将程序集定义 (.asmdef) 添加到我的脚本文件夹(我的自定义统一脚本)。现在 Unity 抱怨它找不到我在我的一个脚本中使用过的 OVRInput class (GameManager.cs):

此 OVRInput class 被编译成 Assembly-CSharp.dll 托管程序集,如下所示:

我希望 Unity 默认情况下能够看到这种依赖关系并解决它,但不知何故它没有。所以我决定手动将 "Assembly-CSharp.dll" 添加到我的程序集的依赖部分(称为 "Assembly Definition References"),但 Unity 给出错误,它找不到这样的程序集。

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

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

这就是重点

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

它们应该是您在 in 中引用(如 TextMeshPro 或 JsonDotNet)而不是 out 的东西。因此,您无法引用主 Assembly-Csharp“名称 space”。“

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

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