4

只需单击一个按钮,它就非常流畅且跨浏览器/平台,这使非技术人员得出结论,整个引擎本质上比我们现在使用的要好。仅仅是他们花时间实现了 Unity WebPlayer 的所有浏览器/操作系统插件版本并对其进行了改进,还是引擎架构的设置方式有什么更深层次的?

4

1 回答 1

6

Unity 采用 C#、UnityScript(基于 JavaScript)或 Boo(基于 Python)编写的脚本,并将它们编译为单声道程序集。这些程序集 + 游戏所需的 3d 模型、声音和纹理被压缩成一个 .unity3d 文件,由其浏览器插件加载。由于几乎所有游戏的逻辑都在托管的单声道程序集中,因此它跨平台运行,很少有特定于平台的怪癖。

他们最近重写了他们的插件检测和安装代码,因此如果用户有插件,很容易将一段 javascript 放入显示 Unity 内容的网页中,或者如果他们有其他内容(图像、flash、视频)不。我相信他们的插件支持Mac和Windows上的所有A级浏览器,并且无需重启浏览器即可安装插件。

Unity 引擎的一个优点是您可以使用大量现成的托管程序集并将它们包含在您的项目中并从 Unity 代码中调用它们。但是您必须注意,这些程序集确实会增大 .unity3d 文件的大小。

另一个优点是您可以轻松编写公开可调参数的组件,这些参数可由非技术人员修改。

还有一个优势是,一个编写良好的项目可以在一天内移植到 iPhone、Standalone、Android、Web 等。我个人通过修改我的输入处理程序和更改纹理压缩来完成 iPhone 到 Web。

一个很大的缺点是,由于应用程序正在运行托管代码,因此好奇或恶意的人将程序集反编译成完全可读的代码并不难。所以你需要考虑别人可以用这些信息做什么(在多人游戏中作弊、编写机器人、伪造高分等)。可以混淆您的程序集,但将此步骤添加到您的构建过程并非易事。

于 2011-02-13T03:29:54.257 回答