3

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

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

在此处输入图像描述

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

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

在此处输入图像描述

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

4

1 回答 1

5

这就是重点

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

它们应该是您引用东西(如 TextMeshPro 或 JsonDotNet),而不是引用东西。因此,您不能引用主要的Assembly-Csharp“名称空间”。

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

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

于 2019-04-20T01:34:38.907 回答