Unity3D的Web部署如何工作?

时间:2011-01-15 10:51:43

标签: plugins architecture unity3d browser-plugin

只需点击一下按钮就可以轻松浏览浏览器/平台,导致非技术类型的结论是整个引擎本质上比我们现在使用的更好。是否只是他们花时间实现Unity WebPlayer的所有浏览器/操作系统插件版本并对其进行修改,或者是否有更深入的引擎架构设置方式?

1 个答案:

答案 0 :(得分:6)

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

他们最近重写了他们的插件检测和安装代码,因此如果用户有插件或其他内容(图片,闪存,视频),很容易将一个javascript块放入显示Unity内容的网页中)如果他们不这样做。我相信他们的插件支持Mac和Windows上的所有A级浏览器,并且可以在不重新启动浏览器的情况下安装插件。

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

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

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

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