在Unity 5中使用.NET 4.5代码

War*_*ows 19 .net c# mono unity-game-engine

我正在使用Unity3D版本5开发游戏.游戏应该使用已经在C#.NET4.5引擎中编程的严格业务规则.使用Xamarin/Mono,我们希望在Windows,Android,其他方面使其可用...

我尝试将引擎构建到dll中,并将其用作Unity中的托管插件.但Unity使用旧版Mono来编译整个游戏并拒绝使用.NET 4.5 dll.

我真的需要使用这个代码,我考虑将它降级到.NET 3.5,但鉴于已经在引擎上完成的工作,它不是一个可接受的解决方案.

关于android,我认为使用Xamarin获取原生的android代码并将其用作Unity中的本机插件.现在我需要Windows的解决方案.我正在研究如何使用C++中的C#代码来创建一个非托管的DLL,但我很难理解COM interop,C++/CLI或其他方法之间适用的方式.

有没有人知道如何在Unity中包含来自.NET 4.5的代码而没有/只需要很少的努力?

Ben*_*ams 12

看起来Unity正在升级到4.6+,现在可用于测试版

https://forum.unity3d.com/threads/upgraded-mono-net-in-editor-on-5-5-0b4.433541/


War*_*ows 8

使用visual studio插件:非托管导出,我已经能够将C#.NET 4.5导出到我可以在Unity Engine中使用的非托管/本机dll.这迫使只调用简单的函数,但是只需要很少的工作,我就可以包装我的引擎的核心.

  • 你在引擎中使用`dynamic`,`Async/Await`等?如果是,请提供一些如何包装的提示 (2认同)

Gho*_*r21 6

简短的回答是否定的.

根据一篇官方博客文章,Unity拥有".NET 2.0/3.5时代功能" .

根据同一篇文章,Unity的未来版本将升级为".NET的现代版本",没有给出这项重大任务的时间表.

注意:这个答案是为了回答问题的原始版本而编写的,这只是.NET 4.5库是否可以直接在Unity中使用.