unity 版本是5.5,不过看了2017的文档好像也是差不多,绝大部分都是根据官方文档,希望有帮助,如果有错误或者你知道更多这方面的只是,请告知下,大恩言谢。

1:对webgl发布的工程文件说明

    
在release文件夹中,如果你使用了gzip压缩,那么你的文件后面会有个.gz
2:如何在pc上面运行webgl
   (1):发布webgl之后不能直接点(index.html)打开查看工程(火狐 和win10 Edge浏览器可以直接打开),需要建立服务器通过服务器地址来访问。
    (2):但是在chrome浏览器中可以使用命令行启动来打开,然后在打开的浏览器网页中通过地址来打开webgl
 

3:other settings设置

和其他平台有些不一样,值得注意的是这个"Strip Engine Code",剥离引擎代码的选项。选中此选项后,Unity不包括不使用的任何类的代码。例如,如果您不使用任何物理组件或功能,整个物理引擎将从您的构建中删除。没有音频功能,unity会在封装的时候去掉这部分代码以减少大小。

如果你的项目中使用到了资源包"AssetBundles"进行动态加载,要注意。如果你不想某些被剥离,请使用link.xml具体百度unity link.xml

如果在项目之后,发现有如下错误 Could not produce class with ID XXX 说明有代码被分离

文档:https://docs.unity3d.com/Manual/IL2CPP-BytecodeStripping.html  https://docs.unity3d.com/Manual/iphone-playerSizeOptimization.html

第二个方法是干脆去掉剥离代码的选项,但是构建体积会有所增大

4:publishing settings设置

(1):是webgl可用内存大小的分配,单位是MB,

建议在"64-512"之间,默认的是256,,这里设置的值在封装以后也可以在发布后index.html文件中修改,具体位置位于页面底部的<script>标签中

(2):参数"Enable Exceptions",用来异常捕获开关,调试期间可以打开,产品发布的时候需要去掉。

共有三个选项

none:关闭

Explicitly Thrown Exceptions Only:默认选项,只处理脚本中throw部分的代码,同时也会增大代码体积。

Full:会捕获所有的调试信息,除了代码中的throw,还会将空的引用,非法索引数组,堆栈信息一同捕获。

(3):压缩方式 默认是gzip, 更佳的是Brotli但是需要更多的时间压缩,这个方式只支持火狐和谷歌浏览器

5:注意方面

(1):

(2):使用assetBundle的一些贴士
(3):如果要修改发布的文件相对于index.html的位置,要打开index.html修改相应Uri的路径,也可以放在相应的uri网络地址
        
 
(4):WebGL无法使用monodevelop 或者vs来调试 但是可以使用debug来打印到的浏览器的控制台
6:WebGL图形方面

         WebGL图形 是一种用于在Web浏览器中渲染图形的API,它基于OpenGL ES图形库的功能。 WebGL 1.0大致匹配OpenGL ES 2.0功能,WebGL 2.0大致匹配OpenGL ES 3.0功能。
(1):Unity WebGL仅支持烘焙GI。 WebGL目前不支持实时GI。此外,仅支持非定向光照贴图。
(2):WebGL运行时不支持 Procedural Materials,在运行是会变成普通的材质(Procedural Materials好像是substance的一种材质,具体可以查看文档)
(3):不支持MovieTextures
     官方有个Simple MovieTexture for Unity WebGL demo但是已经不见了,可以用这个插件播放视频,也可以用avpro插件播放视频
     http://renderheads.com/product/avpro-video/ 里面有个demo和unitypackage
(4):WebGL不支持线性色彩空间渲染(WebGL does not support linear color space rendering)
(5):对shader也有限制(具体查看文档)
(6):无法访问用户机器上安装的字体,所有在使用字体的时候要放到assets里面
(7):支持抗锯齿,在Quality Setting中启用抗锯齿功能
(8):反射探针在WebGL中得到支持,但由于WebGL规范中有关渲染到特定mipmap的限制,不支持平滑的实时反射探测器(因此实时反射探测器将始终产生尖锐的反射,这可能会显示非常低的分辨率)
 
7:网络方面
(1):由于安全隐患,JavaScript代码不能直接访问IP套接字来实现网络连接。因此,.NET网络类(即System.Net命名空间中的所有内容,特别是System.Net.Sockets)在WebGL中是不起作用的。这同样适用于Unity的旧UnityEngine.Network *类,这些类在构建WebGL时不可用    目前可以选择使用Unity中的WWW或UnityWebRequest类,或支持WebGL的新的UnityNetworking,或者使用JavaScript中的WebSockets或WebRTC实现您自己的网络AssetsStore有个官方的WebSockets Demo
 
(2):使用WWW or WebRequest的访问跨域资源施安全限制,使用WWW或UnityWebReqest访问内容,并且远程服务器没有正确设置CORS,则在浏览器控制台中将会看到如下错误信息:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myserver.com/. This can be fixed by moving the resource to the same domain or enabling CORS. 查看https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
 
(3):不要阻止www或者unitywwwrequest的下载,比如:while(!www.isDone) {}都是不被允许的 note:webgl是单线程 ,也就是说下载的时候你什么都别动
 
(4):使用Networking.NetworkManager.useWebSockets.具体查看文档
 
(5):在webgl中要使用使用套接字 需要使用webscoket和webRTC。webscoket官网有个简单的例子
使用webRTC要注意有些局限 文档:both networking protocols supported by browsers. Web Sockets has wider support, but WebRTC allows p2p connections between browsers and unreliable connections. Neither of these protocols are exposed through built-in APIs in Unity yet, but it is possible to use a JavaScript plugin to implement this.
 
8:Audio方面
 
9:性能方面
(1):在质量设置中设置为fastest捕捉异常设置为none
 
(2):可以设置为Application.runInBackground However, it should be noted that browsers may throttle content running in background tabs. If thetab with your content is not visible, your content will only be updated once a second in most browsers. Note that this will cause Time.time toprogress slower than usual with the default settings, as the default value of Time.maximumDeltaTime is lower than one second.
 
(3):可以使用Application.targetFrameRate API来限制帧速率。
 
10:内存方面
 
11:与网页js代码交互
 
 (1):webgl调用js代码可以使用 Application.ExternalCall() and Application.ExternalEval()
         在js中调用untiy代码使用SendMessage ('MyGameObject', 'MyFunction', 'foobar');(物体,函数,参数)
 
 (2):使用js插件,在你的unity中(跟其他自己编写插件一样)Assets/Plugins/WebGL/MyPlugin.jslib,注意后缀名是jslib
        http://blog.csdn.net/llddyy123wq/article/details/5620466 
 
12:网页模板
 
13: input方面的支持
   (1):Gamepad and Joystick support
   (2):Touch support
   (3):Keyboard input
 说一下关于有些碰到 unity InputFiled不能输入中文的问题 可以在AssetsStore有个官方的IME Input for Unity Demo 
 
最后附上一张WebGL Browser Compatibility图片

14 :字体

            不能使用unity默认的字体 ,必须在项目文件中包含一个字体文件

Unity发布WebGl注意事项的更多相关文章

  1. Unity发布WebGL时如何修改默认的载入进度条

    Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...

  2. Unity发布WebGL改变鼠标样式

    记录:前段时间遇到一个需求,就是打包出来要在某种情况下鼠标的样子要改变成想要的样式. 详细代码如下 public Texture2D[] hand;//小指图标 /// <summary> ...

  3. unity发布的WebGL部署到IIS

    一.创建WebGL代码 在win7下,Unity3D中发布WebGL,然后部署到IIS,只要代码是对,关键是添加mime类型 二.为网站添加mime类型 .json text/json .unity3 ...

  4. Unity 发布到IOS,Android的各种坑

    Unity 发布到IOS的注意事项1.开发环境MAC环境:Xcode环境 7.2.1Unity环境:Unity5.32.基本说明首先,我说一下,这是我在对Unity发布到IOS的实际使用中,总结出来的 ...

  5. 在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤

      我用的是unity5.4.3版本,jdk是1.8.0_131版本,Android-SDK是r24.4.1版本,Android-NDK是r13b版本,作者是刚开始写博客,希望对在unity摸索的人有 ...

  6. Unity发布至IOS的流程(踩坑记录)

    这篇文章主要用于记录本人亲身经历过的Unity发布到IOS平台所遇到的所有坑(其实也就是一些自己并不明白的强制设定),以便于后续再有类似需求时少走些弯路. 我的环境: Unity 5.2.2 个人版( ...

  7. Unity发布安卓Splash Image适应手机、平板

    问题描述: Unity发布安卓应用时,遇到只能添加一张SplashImage而需要适配手机及平板不同分辨率处理 解决方法: http://blog.csdn.net/aiyan1111111/arti ...

  8. Android Market google play store帐号注册方法流程 及发布应用注意事项

    Android Market google play store帐号申请 注册方法流程 在 Google Play 中发布软件之前,您需要完成以下三项工作: 创建开发人员个人资料 接受开发人员分发协议 ...

  9. Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】

    [转载]http://www.cnblogs.com/zdz8207/archive/2012/07/09/google-play-store-registered.html Android Mark ...

随机推荐

  1. vue不通过路由直接获取url中参数的方法示例

    vue不通过路由直接获取url中参数的方法示例 vuejs取得URL中参数的值地址:http://localhost:3333/#/index?id=128console.log(this.$rout ...

  2. Unable to construct api.Node object for kubelet: can't get ip address of node master.example.com: lookup master.example.com on : no such host

    openshift首页进不去 启动openshift时报的错,大意是: 无法为kubelet构造api.Node对象:无法获取节点master.example.com的IP地址: 所以就联想到新装的c ...

  3. firefox 实现web交互机器人

    现在仅有火狐浏览器可以这样操作 -- Filefox 下面是项目目录 -- 前端页面 -- html <!DOCTYPE html> <html lang="en" ...

  4. h5 的localStorage和sessionStorage存到缓存里面的值是string类型

    localStorage永久存在,不手动清除永远存在:sessionStorage 一次会话的浏览器关闭就自动清除 h5 的localStorage和sessionStorage 存到缓存里面的值都是 ...

  5. idea 报错 :error:java:Compilation failed:internal java compiler error

    当使用Tomcat运行项目时报错 翻译一下是 错误:Java:编译失败:内部Java编译器错误 这样看来更不理解了 其实原因是Java的版本不一致 查看项目的jdk版本是否一致: file----pr ...

  6. ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

    centos7.5 使用into outfile备份失败 问题: mysql> select * from world.city into outfile '/tmp/world_city.da ...

  7. Validation failed for query for method

    问题原因 sql语法,使用@Query("select id, username, usersex, userphone from User where User.usersex = ?1& ...

  8. UVA1428 Ping pong

    思路 分别统计这个位置左边和右边各有多少大于和小于它的数,乘起来即可 使用权值树状数组 代码 #include <cstdio> #include <algorithm> #i ...

  9. FastJson中JSONObject用法及常用方法总结

    本文为博主原创,未经允许不得转载: 最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下: JSONobject是Fa ...

  10. Django2.1.5使用xadmin打造适合国人的后台管理系统

    python做web开发的话,flask.django是比较火的框架了,django是一个比较大的框架,也是一个快速开发利器.但是,django自带的后台admin不太好看,也不太符合我们国人的习惯, ...