我正在使用JetBrains
Rider尝试创建要在DLL
中使用的Unity3d
。我有一个ClassLibrary
项目,其中包含一些继承自Monobehaviour
的类,但似乎无法在引用中正确找到或链接Mono程序集。
构建项目时出现此错误:
TestScript.cs(8,31):[CS0246]类型或名称空间名称找不到“ Monobehaviour”(您是否缺少using指令?或程序集引用?)
有人可以帮我吗?谢谢。
您确定要创建类库吗?通常,通过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安装(只要它们在标准位置即可),并在下拉菜单中为您提供选择。
如果您已经有了要添加Unity支持的类库,则可以添加对UnityEngine.dll
的引用。您将需要查找文件,该文件将位于不同的位置,具体取决于您所使用的操作系统以及是否手动安装Unity或使用Unity Hub。例如,在我的机器上,当我通过Unity Hub安装Unity时,文件位于/Applications/Unity/Hub/Editor/2019.3.0f3/Unity.app/Contents/Managed/UnityEngine.dll
。在Windows上,程序文件下的路径与此类似。