浏览器支持:

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. WebForm复合控件RadioButtonList、CheckBoxList、DropDownList

    1.RadioButtonList     单选集合 -属性:RepeatDirection:Vertical (垂直排布)/Horizontal (横向排布) RepeatLayout:Table ...

  2. sass用法快速入门

    1.@mixin用法 (混合样式)    2.定义变量用$  (可作为全局变量使用) 命名规范 —— 遵守语义化命名:lg-大号.md-中号.base-基本号.sm-小号.mini-超小号 $font ...

  3. SD卡与FAT32系统学习

    2011-06-06 23:04 前2天,我了解了一下SD卡驱动的原理及FAT32文件系统的结构.接着准备主要已移植为主.通过LCD显示SD卡中的图片.但我需要分步进行. 0,使sd卡能读写数据.1, ...

  4. 51nod1432贪心

    n个人,已知每个人体重.独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人.显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含 ...

  5. 【Bcftools】合并不同sample的vcf文件,通过bcftools

    通过GATK calling出来的SNP如果使用UnifiedGenotype获得的SNP文件是分sample的,但是如果使用vcftools或者ANGSD则需要Vcf文件是multi-sample的 ...

  6. PHP与JavaScript下的Cookie操作

    下面的例子列出几种情形交互场景,列出JS和php交互的方法.总结下,以免日后再为cookie问题困扰. setcookie.php getcookie.php 总结: php用自身函数读取php 的c ...

  7. MySQL5.7 Dockerfile

    #Dockerfile for mysql5.7 FROM centos COPY ["src","/src"] RUN groupadd -g 1003 my ...

  8. 剑指offer(16)合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 题目分析 重点抓住这两个链表都是单挑递增的,因此我们只需要不断地比较他们的头结点就行,明显这是个 ...

  9. 面试神体验之:get和post的区别

    由于本文是用markdown在本地编辑的,粘贴到本地的时候出现了一些页面bug,所以只好贴进代码里面,一些链接失效,望见谅 Get和POST的区别 都9102年了,你们还在问get和post的区别?是 ...

  10. P3649 [APIO2014]回文串

    思路 回文自动机 回文自动机的fail[i]就是编号为i的这个字符串的最长的回文后缀的编号,然后len[i]表示编号为i的回文串的长度,cnt[i]表示编号为i的回文串的出现次数 然后trans边就是 ...