Unity3D的Web部署如何工作?

Mr.*_*Boy 4 architecture plugins unity-game-engine browser-plugin

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

Cal*_*vin 6

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

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

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

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

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

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