使用 Mono 为 Unity 构建 DLL

ASu*_*ath 2 .net dll mono unity-game-engine rider

我正在使用JetBrainsRider 尝试创建一个DLLUnity3d. 我有一个ClassLibrary项目,其中的一些类继承自Monobehaviour,但我似乎无法在引用中正确找到或链接 Mono 程序集。

当我构建项目时,我收到此错误:

TestScript.cs(8, 31): [CS0246] 找不到类型或命名空间名称“Monobehaviour”(是否缺少 using 指令或程序集引用?)

谁能帮我吗?谢谢。

cit*_*att 5

您确定要创建类库吗?通常,Unity 代码通过 Unity 界面直接添加为 C# 脚本文件资源,并且所有这些文件都位于该文件Assets夹中。双击这些文件之一将启动外部编辑器,例如 Rider 或 Visual Studio,并带有.csproj为您生成一个包含您需要的所有引用的编辑器。

如果您想将 Unity 项目拆分为更小、更易于管理的部分,您可以使用.asmdef 程序集定义文件。它们也位于该Assets文件夹中,并且本质上告诉 Unity 它们所在的文件夹应该编译成单独的程序集,并被视为单独的 C# 项目。

通过创建包,您可以实现更好的分离和重用。它们位于Packages项目根目录的文件夹中。您的包可以包含多个.asmdef文件,这些文件将被视为多个项目/程序集。您还可以直接从 Git URL 添加包,例如 GitHub。

为 Unity 创建类库程序集的缺点是,您需要手动将其复制到Assets文件夹中,然后 Unity 才能识别它并使用其中的代码。程序集定义文件和包通常是解决此问题的更好方法。

如果您仍然想创建 Unity 类库项目,Rider 将帮助您提供项目模板 - 从“新建项目”对话框中,您可以选择“Unity 类库”,然后您可以选择项目的名称、位置等重要的是,选择将添加为引用的 UnityEngine.dll 的位置。Rider 将找到您计算机上安装的所有 Unity(只要它们位于标准位置),并在下拉菜单中为您提供选择。

选择 Unity 类库的新解决方案对话框

如果您已经有了一个想要添加 Unity 支持的类库,那么您可以添加对UnityEngine.dll. 您需要找到该文件,该文件位于不同的位置,具体取决于您所使用的操作系统以及您是手动安装 Unity 还是使用 Unity Hub。例如,在我的计算机上,当我通过 Unity Hub 安装 Unity 时,该文件位于/Applications/Unity/Hub/Editor/2019.3.0f3/Unity.app/Contents/Managed/UnityEngine.dll. 在 Windows 上,这将位于 Program Files 下的类似路径。