使用Mono构建Unity的DLL

问题描述 投票:0回答:1

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

构建项目时出现此错误:

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

有人可以帮我吗?谢谢。

.net unity3d dll mono rider
1个回答
1
投票

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

如果您想将Unity项目分解为更小,更易于管理的部分,则可以使用.asmdef Assembly Definition files。它们也位于Assets文件夹中,从本质上告诉Unity,它们所在的文件夹应编译成一个单独的程序集,并视为一个单独的C#项目。

您可以通过creating a package获得更好的分离和重用。它们位于项目根目录的Packages文件夹中。您的程序包可以包含多个.asmdef文件,这些文件将被视为多个项目/程序集。您也可以add a package directly from a Git URL,例如GitHub。

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

[如果您仍想创建Unity类库项目,则Rider将提供项目模板帮助-在“新建项目”对话框中,可以选择“ Unity类库”,还可以选择项目名称,位置,更重要的是,选择将被添加为参考的UnityEngine.dll的位置。骑士会在您的计算机上找到所有Unity安装(只要它们在标准位置即可),并在下拉菜单中为您提供选择。

New solution dialog with Unity Class Library selected

如果您已经有了要添加Unity支持的类库,则可以添加对UnityEngine.dll的引用。您将需要查找文件,该文件将位于不同的位置,具体取决于您所使用的操作系统以及是否手动安装Unity或使用Unity Hub。例如,在我的机器上,当我通过Unity Hub安装Unity时,文件位于/Applications/Unity/Hub/Editor/2019.3.0f3/Unity.app/Contents/Managed/UnityEngine.dll。在Windows上,程序文件下的路径与此类似。

© www.soinside.com 2019 - 2024. All rights reserved.