浏览器支持:

Mozilla Firefox 42,Google Chrome 46,Apple Safari 9.0,MS Internet Explorer 11,MS Edge 13

Safari不支持全屏

Chrome需要大量内存解析js代码,可能导致内存不足

IE11号称支持,但是太慢,导致webgl基本不可用

减小发布包的大小

尝试发布空场景,发布文件的全部大小接近6M。。太大了。其中js代码文件xxx.jsgz4.6M。。

优化png文件之类手段并不能减少发布包大小,因为unity最后实际使用的是自己的内部格式。

删除没用的资源也不行

使用Asset Bundle,而不是Resource,可以减少首次下载包的大小。这些其实web player时代就已经是这样了。

打包Asset Bundle的时候使用LZ4压缩格式。webgl不支持多线程,lzma压缩的bundle会导致主线程解压缩时的卡顿。

使用纹理压缩(DXT(Desktop platforms) or PVRTC),在webgl中使用Crunch压缩选项。压缩网格(mesh)和动画(Animation)

不要引用System.dll 和 System.Xml.dll,尽量少用第三方dll

尽量只用.Net 2.0 subset API

设置Edit > Project Settings > Player > Other Settings中的Strip Engine Code为选中,不发布无用的代码。在使用asset bundle的时候,选中此项可能会导致有些用户代码被跳过,从而在加载asset bundle的时候出现Could not produce class with ID XXX的错误。可以在项目中增加link.xml文件,强制unity包含指定类。如下:

<linker>
    <assembly fullname="UnityEngine">
        <type fullname="UnityEngine.Collider" preserve="all"/>
    </assembly>
</linker>

设置Edit > Project Settings > Player > Publishing Settings 中的Enable Exceptions popup为None,如果不需要处理异常。

设置memory size为合适的大小

在发布对话框中设置优化等级为fastest

正确配置web服务器,在 http 协议层使用gzip压缩

其他

webgl不支持movietexture,可以用HTML5 video element实现

wengl对GLSLS shader的限制比OpenGL ES 2.0更多

webgl不支持使用用户本地字体,字体必须包含在unity项目中

webgl不支持IP socket,包括C#的Socket库和UnityEngine.Network。可以用WWW。unity提供一套支持webgl的网络API,也可以用javascript的websockets自己实现。

webgl对unity音频API有大量限制

在大部分浏览器中,webgl后台运行时的更新频率会下降到每秒一次

wengl中,gc(垃圾回收)只能在每帧结束后进行,因此下面的代码会导致内存耗尽:

string hugeString = "";
for (int i = 0; i < 100000; i++)
{
    hugeString += "foo";
}

webgl优化的更多相关文章

  1. WebGL射线拾取模型——八叉树优化

    经过前面2篇WebGL射线拾取模型的文章,相信大家对射线和模型面片相交的原理已经有所了解,那么今天我们再深入探究关于射线拾取的一个问题,那就是遍历场景中的所有与射线相交的模型的优化问题.首先我们来复习 ...

  2. Unity性能优化(4)-官方教程Optimizing graphics rendering in Unity games翻译

    本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

  3. Unity性能优化(1)-官方教程The Profiler window翻译

    本文是Unity官方教程,性能优化系列的第一篇<The Profiler window>的简单翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻 ...

  4. WebGL入门教程(二)-webgl绘制三角形

    前面已经介绍过了webgl,WebGL入门教程(一)-初识webgl(http://www.cnblogs.com/bsman/p/6128447.html),也知道了如何绘制一个点,接下来就用web ...

  5. 移动H5前端性能优化指南

    移动H5前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网 ...

  6. Unity5和WebGL移植指南的一些总结

    对于手游开发者来说,更新版本往往意味着非常复杂的过程,你需要根据反馈做更新.测试.提交然后等待审核,而由于不需要客户端依赖,页游往往是快速测试游戏版本的最佳途径,很多人可能都知道Unity 5可以再不 ...

  7. 移动端重构系列-移动端html页面优化

    对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在 ...

  8. web前端性能优化指南(转)

    web前端性能优化指南 概述 1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络 ...

  9. HTML页面优化

    第一步:加载优化 减少HTTP请求. 因为手机浏览器同时响应请求为4个请求(Android支持4个,iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个.a) 合并CS ...

随机推荐

  1. js-cookie的用法

    cookie的作用无需多言,自己封装一个cookie,不停地复制黏贴页颇为麻烦,在这里,有npm为我们封装好的插件js-cookie: https://www.npmjs.com/package/js ...

  2. 常用git命令总结 初始化git库操作 git 子模块

    查看 git status 查看状态 Gitk 界面各个版本查看 添加 Git add filename 添加指定文件 Git add . 操作未暂存的文件 Git add -A 操作所有文件 包括删 ...

  3. hisi 生产固件生成

    生产需求,需要16M bin 文件 给 spi flash烧写 一般有三种方式 1.把文件都导入flash,拆了flash 用烧录器读取,比较可靠! 2.编译时候合并,需要在空余地方填充0xFF拼成1 ...

  4. Java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    在使用response重定向的时候,报以下错误:Java.lang.IllegalStateException: Cannot call sendRedirect() after the respon ...

  5. Spring-AOP环绕监听出错

    Exception in thread "main" org.springframework.aop.AopInvocationException: Null return val ...

  6. 《温故而知新》JAVA基础一

    一:基本环境 种类 javaSE(核心语法)+javaME(移动设备)+Java EE(JSP/服务等) JVM(java虚拟机) abc.java(源文件)--编译器--abc.class 字节码文 ...

  7. Java版 人脸识别SDK dem

    虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车! 前言由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······ ...

  8. echarts的axisLabel的文字内容过长的解决办法

    通过查找资料学习,我总结了四种解决的办法,不一定是最好的,但是希望能够帮助到需要的童鞋,同时如果大家有什么更好的方法欢迎指导. 方法一:这种方法就是将文本内容转换为字符串数组,然后再按需求换行,需要每 ...

  9. opencv的resize和matlab的imresize函数的计算

    在用c++代码复现matlab代码时,遇到两者resize函数的结果不相同的问题. opencv: resize(image1, reTmp, Size(, ), , , cv::INTER_LINE ...

  10. HihoCoder - 1142 ,三分入门

    先来说说三分的思想: 从三分法的名字中我们可以猜到,三分法是对于需要逼近的区间做三等分: 我们发现lm这个点比rm要低,那么我们要找的最小点一定在[left,rm]之间.如果最低点在[rm,right ...