Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity3D-我可以使用.NET 4.5程序集作为外部库吗?_C#_.net_Mono_Unity3d - Fatal编程技术网

C# Unity3D-我可以使用.NET 4.5程序集作为外部库吗?

C# Unity3D-我可以使用.NET 4.5程序集作为外部库吗?,c#,.net,mono,unity3d,C#,.net,Mono,Unity3d,我想使用在.NETFrameworkV4.5中实现的一组功能。因为Unity3D在Mono运行时(相当于.NET3.5)上工作,所以我认为使用.NET4.5程序集作为外部插件 可能吗?如果可能,此库将使用哪个运行时-Mono或程序集的目标运行时(.NET 4.5)(在我的情况下)?据我所知,您不能,因为unity在Mono上运行。看看这里 基本上,Unity可以升级到.NET3.5或更高版本,并具有一些类似于c#4.0的特性,比如可选参数 需要记住的主要一点是,不管您在构建设置中看到了什么,Un

我想使用在.NETFrameworkV4.5中实现的一组功能。因为Unity3D在Mono运行时(相当于.NET3.5)上工作,所以我认为使用.NET4.5程序集作为外部插件


可能吗?如果可能,此库将使用哪个运行时-Mono或程序集的目标运行时(.NET 4.5)(在我的情况下)?

据我所知,您不能,因为unity在Mono上运行。看看这里

基本上,Unity可以升级到.NET3.5或更高版本,并具有一些类似于c#4.0的特性,比如可选参数

需要记住的主要一点是,不管您在构建设置中看到了什么,Unity3d都没有使用.NET 2.0

编辑2:

我在某些地方看到,您肯定无法直接引用4.5程序集。现在找不到资源

无论如何,我认为可以做一个C++调用器,它调用4.5个程序集。问题是,即使您编写了一个这样工作的包装器,它也只能在windows机器上工作。基本上是因为mono无法在任何其他平台上支持它们。理论上也是如此

免责声明:mono支持部分只是一个有根据的猜测。我不是百分之百的相信

编辑:
这也是一本很好的读物

我知道Unity3D的默认运行时(Mono)。根据Unity文档,我将使用.NET 4.5程序集作为外部库:“Unity对插件有广泛的支持,插件是用C、C++、Objto-C等编写的本机代码库。插件允许您的游戏代码(写在Javascript、C或BO)。调用这些库中的函数。此功能允许Unity与中间件库或现有的C/C++游戏代码集成。”@lewis在他的解释中提到。无法引用需要更高版本的的托管库。Net支持,而不是安装。@lewis这不是重点。不管你安装了什么。Unity的运行时不支持这一点。这取决于目标计算机是什么,以及是否可以安装.NET 4.5 CLR。如果目标机器是IPhone或Android手机,那么我怀疑不是。如果目标机器只包含台式机或笔记本电脑上的windows操作系统,那么我认为使用插件访问.NET 4.5 CLR没有问题。假设您使用C#编写插件并将其构建到DLL,那么Unity将加载DLL并尝试针对Mono解决它。但也许(正如亚历克斯在回答中所说),你可以在C++中构建一个桥插件,它初始化平台的.NET运行时,并加载.NET DLL。不过,这只适用于Windows。