Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 将C项目编译为Unity3d的DLL_C#_Unity3d - Fatal编程技术网

C# 将C项目编译为Unity3d的DLL

C# 将C项目编译为Unity3d的DLL,c#,unity3d,C#,Unity3d,据我所知,一个C项目可以以两种形式添加到Unity3d。作为DLL或未编译的项目 两者的利弊是什么?他们会跨平台工作吗?Android/iOS/WinPhone 要编译为DLL—我是否只需要使用MonoDevelop或Visual Studio来创建新的类库项目并选择.NET3.5进行编译 如何将未编译的项目添加到Unity3d 它们是否可以跨平台工作Android/iOS/WinPhone 对。您可以在Xamarin Studio/MonoDevelop/或Visual Studio中创建库项

据我所知,一个C项目可以以两种形式添加到Unity3d。作为DLL或未编译的项目

两者的利弊是什么?他们会跨平台工作吗?Android/iOS/WinPhone

要编译为DLL—我是否只需要使用MonoDevelop或Visual Studio来创建新的类库项目并选择.NET3.5进行编译

如何将未编译的项目添加到Unity3d

它们是否可以跨平台工作Android/iOS/WinPhone

对。您可以在Xamarin Studio/MonoDevelop/或Visual Studio中创建库项目。如果不包括特定于平台的功能,则将是跨平台的

要编译为DLL—我是否只需要使用MonoDevelop或Visual Studio来创建新的类库项目并选择.NET3.5进行编译


查看此图。

当您在IDE(例如Visual Studio)中打开Unity项目时,它是一个包含两个项目的解决方案,一个用于游戏脚本,另一个用于编辑器脚本。您可以通过选择的IDE向解决方案中添加更多项目。为了使其工作,您需要将项目目标框架设置为与Unity兼容的框架,Unity使用Unity 3.5.net完整基类库的子集。遗憾的是,不支持.NET PCL

您可以像往常一样在任何项目中引用您的或第三方库,只需记住它还必须与Unity兼容


您的代码是否能在所有平台上工作实际上取决于您使用的是什么。平台上特定的限制请参阅

一篇文章中的问题太多了。试着逐一回答: Unity Official文档提供了很多帮助:

问题:

据我所知,一个C项目可以以两种形式添加到Unity3d。作为DLL或未编译的项目。 要编译为DLL—我是否只需要使用MonoDevelop或Visual Studio来创建新的类库项目并选择.NET3.5进行编译

通常,脚本作为源文件保存在项目中,并由 当源头改变时,统一。然而,也有可能 使用 外部编译器。然后可以将生成的DLL添加到项目中 它包含的类可以附加到对象,就像 普通脚本

在Unity中使用脚本通常比使用DLL容易得多。 但是,您可以访问第三方Mono代码 以DLL的形式提供。在开发自己的代码时,您可以 能够使用Unity F不支持的编译器,例如 将代码编译为DLL并将其添加到Unity项目中。而且 您可能希望在没有资源源的情况下提供Unity代码 比如说,存储产品和DLL是一种简单的方法。

利与弊是什么

关于dll:

专业人士

您可以单独构建DLL。 重新构建一个DLL可能会更快 缺点

从DLL调用代码的速度较慢 使用所有DLL重新构建hole项目会比较慢 函数名是可见的。更容易反转使用 动态DLL 您可以在我们最好的朋友Google上找到更多信息: 如何将未编译的项目添加到Unity3d?
你说的未编译项目是什么意思?你是说剧本?然后,它通常只是简单地复制\粘贴到资产文件夹中。

Unity不支持PCL。现在,PCL在Mono中工作得很好。Microsoft.NET PCL不能与Unity一起工作,因为Unity不是基于MS.NET构建的,而是基于Mono,根据定义,Mono是可移植的。目前,Unity的目标是.NET2.0或其子集的monos实现,后者有自己的核心库实现。您可以在此处阅读更多:。你的回答简直是误导。修正它,我将删除否决票。谁说PCL是微软的?如果是,它怎么能被称为便携式?你试过在Unity中使用PCL吗?如果没有,就去做吧。你似乎不清楚PCL?!如果你在投票前误解了,最好仔细考虑一下。在上面的评论中看到你的链接时,我笑了。@Bartosz,谢谢你的链接。刚刚注意到.NET4.0是最低目标。你说得对!更新了答案。谢谢不幸的是,PCL不受支持。有任何链接可以证明这一点吗?这里有一个方便的快速入门指南。。。