如何使用Visual Studio Community for Mac为Unity创建托管插件

时间:2018-11-22 20:14:30

标签: visual-studio unity3d

我将使用Visual Studio Community for Mac(7.6.11 build 9)为Unity(2018.2)创建我的第一个托管插件

我已经读过documentation,但我认为分步说明并不适用于Visual Studio Community for Mac。

如下面的屏幕快照所示,我已经使用每个可用的库模板创建了多个项目。

New Project

所有文件都成功编译为针对与Unity不兼容的.NET Framework版本的DLL。

Unity Inspector

我唯一可以更改.NET Framework版本以匹配Unity 3.5的项目是基于 Other> .NET>库的项目。

Project Options

一切正常,但是我想知道假设,过程和最终结果是否正确。你能告诉我吗?

1 个答案:

答案 0 :(得分:1)

我不知道“类”和“类库”选项之间的区别,但是您应该使用“类库”选项。这不是答案的重点。

您尚未解决的两个未来问题:

1 。引用Unity的API。

如果必须在插件中使用任何Unity库或API,例如Vector3,则需要将Unity的UnityEngine.dll添加到库设置中。如果不这样做,则将在运行时异常。

转到项目->添加参考--->浏览--->浏览按钮 然后选择<UnityInstallationDirecory>\Editor\Data\Managed\UnityEngine.dll。您现在可以构建托管插件。由于您使用的是Mac,因此此路径在您的操作系统上是不同的。在Mac上,它可能是/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll。您只需要找到UnityEngine.dll的位置即可。

2 。隐形堆栈跟踪

在当前设置下,如果托管插件出现错误,则堆栈跟踪将不存在。您将没有文件名和行号,因此调试插件代码非常困难。

在生成项目时,Visual Studio会生成PDB文件而不是MDB文件。 Unity不能直接使用它。您必须将PDB文件转换为MDB文件。

在命令行中运行以下命令:

<UnityInstallationDirecory>\Data\MonoBleedingEdge\lib\mono\4.5\pdb2mdb.exe UnmanagedPlugin.dll

同样,在Mac上路径可能有所不同,您只需要找到将PDB文件转换为MDB文件的“ pdb2mdb.exe”即可。

然后,将MDB和dll文件复制到Unity项目中的“ Assets”文件夹中。