什么语言用于使用Unity开发

jar*_*ryd 62 unity-game-engine

使用Unity编程时需要使用哪种语言?或者它是许多语言的API?

我仔细阅读了文档,我想我错过了使用语言的观点.

它说它有iOS部署,这仍然允许程序员在目标C中编码吗?

Unity是一个可以用于许多平台的sdk,它是如何工作的?它提到在多个平台上部署相同的代码.

Cod*_*tch 105

所有开发都是使用您选择的C#,Boo或JavaScript方言完成的.

  • C#无需解释:)
  • Boo是一种CLI语言,其语法与Python非常相似; 但是,静态输入有一些其他差异.它不是"真正的"Python; 它看起来很相似.
  • Unity使用的JavaScript版本也是一种CLI语言,并且已经过编译.新手常常认为JS不如其他三个好,但它的编译速度和功能一样快.

文档中的大多数示例代码都是使用JavaScript; 如果你在官方论坛和维基上浏览,你会看到一个非常均匀的C#和Javascript混合.似乎很少有人使用Boo,但它同样好; 选择你已经知道或最快乐学习的语言.

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


更新2019/31/01

从Unity 2017.2开始,"UnityScript"(Unity的JavaScript版本,但不完全相同)通过删除从UI添加"JavaScript"文件的选项,迈出了完全弃用的第一步.仍然可以使用思想JS文件,在以后的版本中将完全删除对它的支持.

这也意味着Boo将变得无法使用,因为它的编译器实际上是作为UnityScript之上的层构建的.因此将被删除.

这意味着将来只有C#才能拥有原生支持.

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

  • 投票我认为是最好的答案.只是为了确保我正确阅读它,所以我可以使用JS编写一个统一的游戏,然后在iPhone或Android设备上运行它,因为它将JS转换为objective-c为你?谢谢. (4认同)
  • 是的!你只能用JS编写,最终得到一个运行在Windows,OS X,网络浏览器插件,iPhone,Android,PS3和Wii上的游戏.(注意:前三个除了需要额外的许可证外.) (4认同)
  • @Aerovistae我知道这已经很晚了,但是截至2018年,UnityScript和Boo已被完全弃用。由于Unity相信很少有人再使用这些语言,因此它们最终将被完全钉住。C#被设置为Unity的唯一语言,因此在此问题上别无选择。请参阅此[blog post](https://blogs.unity3d.com/2017/08/11/unityscripts-long-ride-off-into-the-sunset/)了解更多信息和[此Github存储库](https: //github.com/Unity-Technologies/unityscript2csharp),该工具来自Unity,可以将UnityScript转换为C#。 (2认同)

And*_*ong 34

据我所知,你可以使用c#.

您还可以使用晦涩的语言"Boo".(发现于https://boo-language.github.io/)

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

请注意,Unity构建到Android/iOS和许多其他平台.iOS编程使用objective-c或Swift这一事实在Unity3D级别完全无关紧要.Unity使用c#编程.

  • 这个答案仍然是最新的吗? (2认同)

Cal*_*vin 6

当您在Unity中为iPhone构建时,它会将您的单声道程序集(用C#或JavaScript编写)的Ahead of Time(AOT)编译为本机ARM代码.

创作工具还创建了一个存根xcode项目和编译lib的引用.如果您想要做的本机内容尚未在Unity环境中公开(例如访问指南针和/或陀螺仪),您可以将目标C代码添加到此xcode项目中.


小智 5

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

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