有个同学问了一个问题,希望用Unity编译出的WebGL打开摄像头,显示3D模型 在手机浏览器里面运行。
第一反应就是建议他用three.js 之类的JS 库。但是他说Unity相对熟悉点。正好自己之前也没有试过Unity 在手机浏览器里面打开摄像头。索性试一下。
用版本 Unity_2017.4.24f1 ,在PC上的浏览器里面都出不来。
换成 Unity2018.3.12f1 ,Unity里面 Build Settings->Build And Run 直接启动浏览器,可以打开摄像头,并显示内容。
但是把生成的内容放到自己的server 里面,PC上面的浏览器里面报错:An error occurred running the Unity content on this page.See your browser JavaScript console for more info. The error was: Uncaught SyntaxError :Unexpected end of input. 到手机上访问也一样报这个错。
查了一下,发现是mimeType的问题。需要配置下服务器
之后PC上访问正常,提示摄像头权限,点击allow后,摄像头可以正常打开显示内容。
但是手机上不提示摄像头权限请求,怀疑是需要用https;换成https之后还是没弹出请求,显示黑色。
最终 还是用 three.js 测试成功了,PC和手机上均能正常工作。
Unity官方文档有说明,目前WebGL在移动平台上支持的不是很好。所以后续类似这种WebGL的内容,暂时还是不要用Unity了。