栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

unity打包webgl局限及优化建议

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unity打包webgl局限及优化建议

首先要知道编译流程

一.大致编译流程

c# -> 通过IL2CPP技术转换成c++ -> 使用 Emscripten编译器进行编译将脚本转换为JavaScript(但不是普通的 JS,而是一种叫做 asm.js的 JavaScript 变体)

二.Unity打包webgl局限

1. 不支持多线程
JS为单线程,所以代码中避免使用C#的多线程(托管的 dll中使用线程也不支持),实质上不支持System.Threading命名空间中的任何内容;可以用协程。

2. Socket限制
由于安全限制,System.Net.Sockets在 WebGL 中不起作用;官方建议使用Unity中的WWW或UnityWebRequest类或使用支持 WebGL 的新型Unity 网络功能,或者使用 JavaScript 中的 WebSockets 或 WebRTC 来实现您自己的网络。(后端建议为RSA证书,ECC证书可能会出错)

3. 不完全支持WebGL
https://docs.unity.cn/cn/2021.1/Manual/webgl-graphics.html

4. WebGL音频限制
https://docs.unity.cn/cn/2021.1/Manual/webgl-audio.html

三.Unity打包webgl性能优化

1. 将资源和应用分离实现应用的快速启动
建议分场景打包(要注意的一点就是IL2CPP编译时代码剥离的问题),通过unity 的addressable 和 CCD服务(可以避免跨域问题),实现加速。

2.减少内存使用(任何不是16的倍数的值都将被自动四舍五入(在运行时)为下一个16的倍数,这是Emscripten编译器所要求的,官方建议保持在512MB一下)

2.1 减小 Unity Heap 的大小:保持“WebGL 内存大小”尽可能小;

2.2 减少代码大小:
启用剥离引擎代码;
禁用异常;
尽量避免使用第 3 方插件;

2.3减少数据大小:
使用资产包;
使用 Crunch 纹理压缩;
https://mp.weixin.qq.com/s/X5cUCFhHOA_LtS9k0i-Csw
https://blog.unity.com/technology/understanding-memory-in-unity-webgl

3.


三.性能优化工具:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号