繁体   English   中英

将C#项目编译为Unity3d的DLL

[英]Compiling a C# project as DLL for Unity3d

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

两者的优点和缺点是什么? 他们会跨平台工作(Android / iOS / WinPhone)吗?

要编译为DLL - 我是否只使用MonoDevelop或Visual Studio到新的类库项目并选择.NET 3.5并编译?

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

他们会工作跨平台(Android / iOS / WinPhone)吗?

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

编译为DLL - 我是否只使用MonoDevelop或Visual Studio到新的类库项目并选择.NET 3.5并编译?

请参阅本教程

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

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

您的代码可以在所有平台上运行,实际上取决于您使用的内容。 有关平台的具体限制,请参阅http://docs.unity3d.com/Manual/PlatformSpecific.html

那么好吧在一篇文章中有太多问题。 尝试逐一回答:Unity官方文档提供了很多帮助:

据我所知,C#项目可以以2种形式添加到Unity3d中。 作为DLL或未编译的项目。 要编译为DLL - 我是否只使用MonoDevelop或Visual Studio到新的类库项目并选择.NET 3.5并编译?

通常,脚本作为源文件保存在项目中,并在源更改时由Unity编译。 但是,也可以使用外部编译器将脚本编译为动态链接库(DLL)。 然后可以将生成的DLL添加到项目中,并且它包含的类可以像普通脚本一样附加到对象。

使用脚本通常比使用Unity中的DLL更容易。 但是,您可以访问以DLL形式提供的第三方Mono代码。 在开发自己的代码时,您可以通过将代码编译为DLL并将其添加到Unity项目中来使用Unity不支持的编译器(例如,F#)。 此外,您可能希望在没有源代码的情况下提供Unity代码(例如,对于资产商店产品),并且DLL是一种简单的方法。 更多

优缺点都有什么

关于DLL:

优点

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

缺点

  • 从DLL调用代码的速度较慢
  • 使用所有DLL重新构建漏洞项目会更慢
  • 功能名称可见。 这是比较容易逆转使用动态DLL的代码,你可以找到更多在这里这里和专门在谷歌,我们最好的朋友:)

如何将未编译的项目添加到Unity3d? Ans:未编译的项目是什么意思? 你的意思是脚本? 然后它通常只是复制\\粘贴在资产文件夹内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM