Unity发布WebGL网页版

开始WebGL开发

什么是 Unity WebGL?**

WebGL工程选项允许Unity以JavaScript程序形式发布使用HTMl5技术和WebGL渲染API、在网页浏览器中运行的Unity内容。为了构建和测试WebGL内容,在“Build Player”窗口中选择WebGL构建目标,并且点击“Build & Run ”。

技术概览

为了在WebGL中运行,所有代码需要是JavaScript。我们使用 emscripten 编译器工具链来交叉编译Unity运行时代码(用C和C++编写)到asm.js的JavaScript代码。asm.js是一个非常理想的JavaScript子集,允许JavaScript引擎 预编译asm.js代码为极具性能的原生代码。 
为了转换.NET 游戏代码(C#和UnityScript脚本)至JavaScript,我们使用了一个称为IL2CPP的技术。IL2CPP获取.NET字节代码并将它转换为对应的C++源文件,然后通过使用emscripten,这些源文件被编译,最终将用户的脚本转换为JavaScript。

平台支持

Unity WebGL内容在当前大部分桌面主流浏览器都支持,然而不同的浏览器,提供的支持程度仍有所差别。移动设备并不被Unity WebGL支持。 
不是所有Unity特性在WebGL工程中都可用,大部分是因为平台限制的关系,例如:

  • 多线程不被支持,因为JavaScript没有线程支持技术。这对Unity使用多线程来提升执行速度,以及脚本代码和管理dll,都产生了影响。实际上,所有在System.Threading命名空间中的都不被支持。
  • WebGL工程无法在MonoDevelop或Visal Studio中进行调试。详细请看“Debugging and trouble shooting WebGL builds”(暂未译出)。
  • 浏览器不允许联网进行IP套接字的直接存取,出于安全方面得考虑。详细请看“WebGL Networking”(暂未译出)。
  • WebGl图形API等同于OpenGL ES 2.0,有一些限制,详细请看:“ WebGL Graphics”(暂未译出)。
  • WebGL工程使用一个自定义、基于Web Audio API的后端,用于音效。这仅支持基本的音频功能。详细请看“Using Audio in WebGL”(暂未译出)。
  • WebGL是一个预编译平台,所以它不允许使用System.Reflection.Emit的代码动态生成。这在所有其它IL2CPP平台,iOS,以及大部分控制台都一样。

WebGL 浏览器兼容性

Unity WebGL在一定程度上支持所有的桌面主流浏览器。然而,不同的浏览器之间,支持程度、预期性能并不一样。请通过以下的表格,对Unity WebGL特性,以及哪些浏览器支持它们做一个整体查看。 
注意,Unity WebGL 内容目前在移动设备上不支持。它或许在高档设备仍可以工作,但许多现有的设备并不足够强大,且没有足够的内存空间来很好地支持Unity WebGL内容。出于这个原因,当尝试在移动设备的浏览器上加载内容时,Unity WebGL会显示一个警告信息(如果需要,此功能可以被关闭)。 
注意到,这个兼容表针对浏览器特定版本才有意义。更高版本会继续支持,但先前的版本可能会不稳定。

           
  Mozilla Firefox 42 Google Chrome 46 Apple Safari 9.0 MS Internet Explorer 11 MS Edge 13
WebGL支持 是。GPU黑名单可用。WebGL可能不被一些特定的老显卡所支持。 是。GPU黑名单可用。WebGL可能不被一些特定的老显卡所支持。 是。需要Safari8以及更高版本。 是。需要IE11及更高版本。
网页音效。网页音效API被用于在Unity WebGL内容中播放声音。
全屏 否。Safari supports
  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity发布WebGL时出现黑屏的问题,可能有多种原因。以下是解决问题的一些建议: 1.检查Unity版本:确保使用的是最新版本的Unity,并且已经安装了最新的更新和补丁程序。一些旧版本可能存在兼容性问题,导致黑屏。 2.检查网页设置:确保在Unity项目的构建设置中选择了正确的分辨率和目标平台。如果分辨率设置不正确,可能会导致黑屏现象。 3.检查资源加载:确保所有的资源文件都已正确地导入到Unity项目中,并且链接正确。如果某些资源文件丢失或路径不正确,也可能导致黑屏。 4.检查Unity脚本:审查所有Unity脚本,确保没有语法错误或逻辑错误。错误的脚本可能导致游戏崩溃或黑屏。 5.检查浏览器兼容性:不同的浏览器对WebGL的支持程度有所差异。尝试在不同的浏览器中打开WebGL,看是否出现黑屏。如果只在某个特定的浏览器中出现问题,可以尝试升级或更换浏览器。 6.检查硬件加速:在某些情况下,硬件加速可能与WebGL兼容性有冲突。可以尝试禁用硬件加速,然后重新加载网页以查看是否解决了黑屏问题。 7.查看错误消息:在浏览器的开发者工具中查看控制台输出的错误消息。这些错误消息可能提供有关黑屏原因的线索,可以根据错误消息进行修改和调试。 如果经过以上步骤仍然无法解决黑屏问题,可以参考Unity的官方文档、在线论坛和社区寻求更详细的帮助。 ### 回答2: 当使用Unity发布网页版WebGL时,出现黑屏的问题可能有多种原因。以下是一些可能的解决方法: 1.清除浏览器缓存:有时候浏览器会缓存旧的WebGL版本,导致黑屏问题。尝试清除浏览器缓存,然后重新加载网页,看是否解决问题。 2.检查浏览器兼容性:Unity WebGL可能受到不同浏览器的不同支持程度,特别是旧版本的浏览器。尝试在现代浏览器(如Chrome、Firefox或Edge)中打开该网页,看是否有改善。 3.检查Unity项目设置:在Unity中,确保你已经正确设置了WebGL发布的一些重要参数。例如,确保你已经选择了正确的分辨率,启用了相应的图形API选项,并且已经正确设置了加载场景和资源的配置。 4.查看浏览器控制台输出:打开浏览器控制台(通常是通过按下F12键),查看是否有任何错误或警告信息。这些信息可能有助于找到黑屏问题的具体原因。 5.更新Unity版本:如果你正在使用较旧的Unity版本,尝试更新到最新版本。Unity经常修复和改进WebGL发布的兼容性问题。 如果以上方法都无法解决黑屏问题,你可能需要进一步研究并尝试其他解决方案,或者考虑请求Unity社区或技术支持的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值