我将使用Visual Studio Community for Mac(7.6.11 build 9)为Unity(2018.2)创建我的第一个托管插件。
我已经读过documentation,但我认为分步说明并不适用于Visual Studio Community for Mac。
如下面的屏幕快照所示,我已经使用每个可用的库模板创建了多个项目。
所有文件都成功编译为针对与Unity不兼容的.NET Framework版本的DLL。
我唯一可以更改.NET Framework版本以匹配Unity 3.5的项目是基于 Other> .NET>库的项目。
一切正常,但是我想知道假设,过程和最终结果是否正确。你能告诉我吗?
答案 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”文件夹中。