79

使用 Unity 编程时需要使用什么语言?还是它是多种语言的 API?

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

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

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

4

11 回答 11

123

所有开发都是使用您选择的 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 或其他东西的平台,但这对您来说是完全透明的。了解 Objective C 真的没有什么好处。你不能在里面编程。


更新 2019/31/01

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

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

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

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

于 2011-02-27T09:56:46.113 回答
45

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

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

过去(大约在 2012 年之前)可以使用 Java 的一种奇怪变体,但现在已弃用并且无法使用。

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

于 2011-02-14T08:48:24.407 回答
6

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

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

于 2011-02-14T19:29:41.903 回答
5

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

请记住,首先编译 C# 脚本,然后是 JS 和 Boo。因此,如果您希望 C# 脚本与 JS 交互,则必须将 JS 保存在 Standard Assets 文件夹中。

于 2013-04-02T09:17:01.990 回答
3

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

于 2016-05-25T14:44:23.067 回答
2

Unity 中 C# 和 Javascript 脚本语法之间的一些核心差异。

http://unity3d.com/learn/tutorials/modules/beginner/scripting/c-sharp-vs-javascript-syntax

但请记住,C# 是最好的统一开发

于 2014-10-16T07:44:40.380 回答
1

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

除非您编写的函数的计算要求会导致处理器负载过重,否则 Javascript 在大多数情况下都能提供足够好的性能。

于 2013-12-17T17:10:20.020 回答
1

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

如果需要,unity3d 脚本参考非常容易理解/使用,可能是 cryengine、udk 等引擎中最简单的。

希望这可以帮助。

于 2014-04-22T18:57:32.187 回答
1

One can use any one of the following three scripting languages:

  1. JavaScript
  2. C#
  3. Boo

But my personal choice is C# because I find it faster in comparison to other two.

于 2014-08-19T17:31:53.143 回答
1

我记得从互联网上阅读了一些关于 Unity 性能的文章,这些文章警告 JavaScript 用户不要在 Unity 中使用它,关于在 Unity 中使用 JavaScript 而不是 C# 的真正巨大问题,它说C# 比 JavaScript 快 4 倍!.

我真的很感谢那篇文章,因为它在我即将开始游戏时救了我,我并不是说 JavaScript 对统一开发人员不利,它很好,但我的建议是,如果你喜欢使用 JavaScript,你应该将它用于简单的小游戏不适合大项目,因为它真的可能是一个大问题!

于 2017-11-19T19:07:54.527 回答
1

目前只有 C# 可用于对 Boo 的脚本支持,并且移除了 Javascript。

于 2021-03-06T22:25:14.923 回答