在即将发布的Unity 5.3是第四个支持WebGL发布的Unity版本。自Unity 5.0第一次发布预览版WebGL以来,我们取得了许多进展,现在与大家分享相关更新内容。

Unity 5.3中WebGL的更新

  • Unity Standard Shader为WebGL使用桌面级质量的反射函数
    此前,Unity WebGL使用的是基于OpenGL ES 2.0图形库的移动简化版Standard Shader。现在WebGL使用的是与桌面应用相同的反射函数,因此素材质量得到较大的提高。
  • 支持软阴影
  • Unity WebGL将会在服务器未配置压缩的情况下,帮助你处理压缩问题
    此前,WebGL要求将Web服务器设置为gzip压缩模式,以避免用户下载未经过压缩的庞大文件。但是,这个设置的过程过于复杂与困难,因此,我们使WebGL在运行时,将在Web服务器未正确设置提供压缩数据的情况下自动下载gzip压缩格式的数据。压缩数据随后会在客户端以JavaScript.html" target="_blank" class="relatedlink">JavaScript解压——协议级别的压缩处理会增加额外的延迟(如果你服务器配置正确的话一样能工作),但这样你就不必再去阅读服务器手册以避免巨大的下载请求了。
  • 数据文件将以LZ4压缩格式保持在内存中
    在WebGL中,你不必访问真实的文件系统。所以,我们会将你所有的Asset一直保留在内存中。在Unity 5.3,内存中的Asset数据将使用LZ4算法进行压缩,并仅在被加载时才进行解压。这意味着你的Asset数据占用的内存会更少,你程序出现内存耗尽的机会也更少。
  • WebGL构建文件能更轻松的重定位到不同的URL
    所有构建过程中产生的文件都能在生成的index.html中找到引用地址。所以,如果你希望将构建数据部署到外部主机,现在的操作将简单许多,因为你需要设置的所有URL都在能在一个地方找到。
  • 支持WebCam
    Unity 5.3版本在Unity WebGL中增加了对WebCamTexture类的支持,以便能在任何支持getUserMedia API的浏览器中访问已连接的摄像头。
  • WebGL是Unity Cloud Build中的一个平台选项
    团队成员可以直接在浏览器中测试游戏/应用。
  • WebGL文档的改进
    针对5.3版本,我们对WebGL文档进行了重新制做,增加了许多额外信息。在文档中详细地记录目前WebGL平台尚不支持以及仅受特定浏览器支持的东西。
  • BUG的修正
    与Unity 5.2.x相比,Unity 5.3在WebGL方面做了28个Bug修正,以及许多其他亦能惠及WebGL用户却不单独针对WebGL平台的修正。此外,其他一些针对WebGL的Bug修正已在5.2.x的发布周期中随不同补丁部署,现在它们都已整体集成到了Unity5.3中。

WebGL正式成为Unity的构建目标

目前为止,Unity中的WebGL仅是作为一个不受支持的预览版本。在Unity 5.3中,我们将去除“Preview”标签,并使WebGL成为官方支持的构建目标。现在我们的白金及企业级支持计划中将覆盖WebGL平台。
如上所述,Unity 5.3为WebGL开发者做了非常多的改进,5.2和5.1版本亦然。因此我们觉得自5.0初次启动WebGL以来,它已发生了翻天覆地的变化。同样的,浏览器技术也随时间的前进慢慢得到改进。微软在Windows 10中发布了新的Edge浏览器。这个浏览器支持asm.js,而且要比Internet Explorer 11更好地支持运行Unity WebGL内容,极大的增加了Unity WebGL内容的潜在受众数量。
WebGL平台自5.0发布预览版以来已改进了许多,但这并不意味着WebGL中能使用所有的Unity特性,或达到原生构建的性能,或使内容在任何浏览器上可靠运行。这几个方面的确都有改进,但都是渐进的。总的来说,我们觉得现在已有一个能在平台约束下正常工作的产品,而且是时候宣布对WebGL构建对象提供官方支持了。有关你可能会在什么浏览器上遇到什么的限制,我们将会在文档中进行说明。
 
与浏览器厂商的合作
 
WebGL部署解决方案极大的依赖于由浏览器提供的技术支持。我们在过去的几年中与各大主要浏览器厂商进行着密切的合作,推动这些技术的不断前进。
Mozilla的平台产品管理主管,Martin Best说:“今天是一个里程碑,Unity进一步为WebGL导出对象提供全面支持。Mozilla首倡的诸如asm.js,WebGL以及Emscripten等技术为此提供了可能,我们将继续积极与Unity以及其他浏览器厂商进行紧密合作创造最好的Web游戏体验。
专注于Edge与Open Web Standard的微软Principal Program Manager,DavidCatuhe评论道:“WebGL以及asm.js是Microsoft Edge为Windows 10用户提供完善web体验的重要组成部分。随着WebGL构建目标的发布,Unity使开发者可以为我们的用户提供更好的Web游戏体验。同时,这也是我们继续共同改进WebGL、asm.js,以及其他功能的一个大好良机”。
Google Chrome WebGL团队Brandon Jones,Zhenyao Mo 以及 Ken Russell对于开发者社区表达了相似的观点:“Unity对于HTML5以及WebGL部署的支持是当下这生态中最令人激动的进展了。全世界的开发者将使用Unity的工具链把他们最精彩的游戏带到Web上来。我们期待针对Web平台性能与功能方面的持续改进而带来的更加激动人心的交互式内容。”
我们相信Unity的WebGL导出将是Web游戏的未来。现在就加入到已发布的Unity WebGL游戏名单中来吧。