使用Unity开发哪种语言


72

使用Unity编程时,需要使用哪种语言?还是针对多种语言的API?

我通读了文档,但我想我错过了所用语言的要点。

它说它已经部署了iOS,这是否仍允许程序员在目标C中进行编码?

Unity是可用于许多平台的SDK还是它如何工作?它提到在多个平台上部署相同的代码。

Answers:


42

据我所知,您可以使用c#。

您也可以使用晦涩的语言“ Boo”。(位于https://boo-language.github.io/

在过去(大约在2012年之前),可以使用Java的一个奇怪的变体,但现在已弃用它并且不起作用。

请注意,Unity可构建到Android / iOS和许多其他平台。iOS编程使用Objective-C或Swift的事实在Unity3D级别上完全无关。Unity是使用c#编程的。


因此,C#转换为iOS部署。但是开发是使用C#而不是iphone的obj c完成的
系统

对于Android:即使是免费版本!很简单 只需用C#或JavaScript编写,然后单击build,选择Android,即可完成。Unity非常适合为不同的目标构建。
Sadik

3
这个答案仍然是最新的吗?
临时用户名

我不是专家,但似乎Java不是Unity支持的语言
maxkoryukov

119

所有开发工作均使用C#,Boo或JavaScript方言进行。

  • C#无需解释:)
  • Boo是一种CLI语言,语法与Python非常相似。但是,它是静态类型的,并且还有其他一些区别。它不是“真正的” Python。它看起来很相似。
  • Unity使用的JavaScript版本也是一种CLI语言,并且已被编译。新手经常认为JS不如其他三个好,但它是经过编译的,并且速度和功能都一样。

文档中的大多数示例代码都使用JavaScript。如果您在官方论坛和Wiki上闲逛,您会发现C#和Javascript的组合相当均匀。似乎很少有人使用Boo,但效果却一样好。选择您已经知道或最快乐的语言。

Unity会使用您的C#/ JS / Boo代码并将其编译为在iOS,Android,PC,Mac,XBox,PS3,Wii或Web插件上运行。根据最终可能是Objective C或其他东西的平台,但这对您是完全透明的。了解目标C确实没有任何好处。您不能在其中编程。


更新2019/31/01

从Unity 2017.2开始,“ UnityScript”(Unity的JavaScript版本,但不完全相同)朝着完全弃用迈出了第一步,方法是从UI中删除添加“ JavaScript”文件的选项。尽管仍然可以使用JS文件,但在更高版本中将完全放弃对其的支持。

这也意味着Boo将变得不可用,因为其编译器实际上是作为UnityScript之上的一个层构建的,因此也将被删除。

这意味着将来仅C#将具有本机支持。

unity于2017年8月发布了一篇关于UnityScript和Boo弃用的完整文章


4
我认为这是最好的答案。只是为了确保我阅读正确,所以我可以使用JS统一编写一个游戏,然后在iPhone或Android设备上运行它,因为它可以为您将JS转换为Objective-c?谢谢。
瑞安

4
是的 您只能用JS编写,并最终获得可在Windows,OS X,网络浏览器插件,iPhone,Android,PS3和Wii上运行的游戏。(注意:除前三个外,所有其他许可证都需要附加许可证。)
Cody Hatch

@CodyHatch“取决于最终可能成为Objective C或其他东西的平台”,没有。对于iPhone版本,Unity内置了一些Obj-C样板,可以与某些可可触摸框架进行交互,但是您的所有代码都被编译到Arm Assembly中。另外,您完全可以编写Objective-C插件来完成付款和通知之类的工作。
Stephan van den Heuvel 2013年

1
“新来者经常认为JS不如其他三个好,但它是经过编译的,并且速度和功能都一样。” -很抱歉,您不得不重新使用旧线程,但是我必须说这部分是绝对错误的。我运行了多个基准测试,并且JS的运行速度比C#慢得多(在较重的计算中,速度高达100倍)。我推荐C#。
普热Wrzesiński

2
@Aerovistae我知道这已经很晚了,但是截至2018年,UnityScript和Boo完全被弃用了。由于Unity相信很少有人再使用这些语言,因此它们最终将被完全钉住。C#被设置为Unity的唯一语言,因此在此问题上别无选择。有关更多信息,请参阅此博客文章,有关Unity的工具的Github存储库,该工具应将UnityScript转换为C#。
GDP2

6

当您在Unity中为iPhone进行构建时,它会将单声道程序集(用C#或JavaScript编写)提前完成(AOT)编译为本地ARM代码。

创作工具还创建一个存根xcode项目,并引用已编译的lib。如果您要执行的本机工作尚未在Unity环境中公开(例如,访问指南针和/或陀螺仪),则可以向此xcode项目添加目标C代码。


5

Unity3d支持C#,Boo和JavaScript。该框架将其转换为中间格式,然后转换为所需的平台(IOS / Android / Linux / Windows)

请记住,首先编译C#脚本,然后编译JS和Boo。因此,如果您希望C#脚本与JS交互,则必须将JS保留在“标准资产”文件夹中。


3

Unity支持:
1. UnityScript(称为Javascript,但包含Unity游戏引擎的更多功能。我认为这可能非常容易学习)
2. Boo(无经验)
3. C#(我更喜欢它,因为它对学习,您也可以在团结之外使用它。我也认为很容易习惯)



1

您可以使用C#,Javascript,Boo。

除非您编写的函数的计算要求导致处理器负担沉重,否则Javascript在大多数情况下都具有足够的性能。


1

它使用c#和unityscript(javascript)(这是c ++中的源代码支持的)和c ++插件支持(源代码,并且插件需要pro)。

unity3d脚本参考确实很容易理解/使用(如果需要的话),可能是最容易使用的引擎,如cryengine,udk等。

希望这可以帮助。


1

一个人可以使用以下三种脚本语言中的任何一种:

  1. 的JavaScript
  2. C#
  3. o

但是我个人的选择是C#,因为与其他两个相比,我发现它更快。


3
你能说清楚你的答案吗?为什么您认为C#与其他两个相比比较快?请提供参考。
m4rtin

1

我从互联网上阅读了一些有关统一性能的文章,使javascript用户避免在统一而不是C#中使用javascript时遇到了很多问题,这使C#几乎比javascript快4倍!
我真的很感谢b / c文章在我即将开始游戏时节省了我的钱,我并不是说javascript对统一开发者不利,它很好,但是我的建议可能是,如果您喜欢使用javascript,则应该使用它对于简单的小型游戏,不是大项目,因为这确实是一个该死的问题!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.