1.不支持ios设备播放音频(无论是MP3还是ogg格式,支持wav格式音频,故发布webgl平台的项目建议将音频都转为wav格式)。

目前是通过unity调用html的Audio标签播放来实现跨平台音频播放的。

首先在Assets文件夹下创建Plugins文件夹,在其中创建externFunction.jslib文件用于调用js方法,文件内容如下:

mergeInto(LibraryManager.library, {
PlayAudios: function (audioname) {PlayAudio(Pointer_stringify(audioname));
}
});

之后再Scripts目录下创建一个C#脚本用于调用

    /// <summary>/// 按照音频名播放音频/// </summary>/// <param name="audioname"></param>[DllImport("__Internal")]private static extern void PlayAudios(string _audioName);/// <summary>/// 播放js音频/// </summary>/// <param name="_audioName"></param>public void PlayJsAudio(string _audioName,bool _play){PlayAudios(_audioName,_play);}

之后再unity场景中想要播放音频的时候直接调用PlayJsAudio(_audioName,true)播放音频(false为暂停)。

打包到webgl后,在html中添加如下脚本

 function PlayAudio(audioid,isplay) {var player = document.getElementById(audioid)if(isplay){player.play();}else{player.pause();}}

当然也需要添加对应的audio标签想要同时播放几段音频就需要创建几个audio标签(比如背景音乐一个,触发音频如按钮一个)

<audio id="bg" preload="auto"><source src="Audios/bg.mp3" type="audio/mpeg"></audio>
<audio id="button" preload="auto"><source src="Audios/button.mp3" type="audio/mpeg"></audio>

完成以上配置后不要忘记在发布出来的webgl目录下创建一个Audios文件夹,并将音频放进去,之后如果要播放背景音乐,则在C#中调用PlayJsAudio("bg",true),暂停为PlayJsAudio("bg",false);

注意IOS设备的浏览器不支持音频自动播放,为此没被需求方少抱怨╮(╯▽╰)╭

2.在ios设备的浏览器(无论是Safari 还是微信浏览器)都会出现ui自适应的问题,安卓设备及pc都无问题。

可将Canvas物体上CanvasScalerde UIScaleMode设置为“ScaleWithScreenSize”,将ReferenceResolution设置为目标设备的分辨率(比如x:1440,y:2540),如下图

若不起作用,将Canvas做如下配置,注意将UI摄像机拖入RenderCamera中

3.发布到webgl的时候注意所有Text都需要使用自定义的字体,否则所有中文都不会显示,这里推荐使用思源字体或阿里巴巴字体,这些字体中都有免费商用的,不用担心版权问题。

4.若要更改loading界面,可以直接替换打包后TemplateData文件夹中的图片,如下所示

若要修改背景颜色,需要更改Build文件夹下面的json文件

若要改成背景图片,需要将此处改为"backgroundUrl": "图片相对路径",如下图所示,图片最好放在Build目录下

5.如果想做微信小程序可以通过laya进行后期制作或者通过下方工具转换(当前版本不支持videoplayer)

https://github.com/wechat-miniprogram/minigame-unity-webgl-transform

6.在本地iis服务器运行没有问题,在线上服务器运行出现Wasm Memory access out of range 问题:

建议换一台服务器,应该是线上服务器抽了~~这是真实项目遇到过的情况,在我本地的iis服务器和腾讯的存储桶中运行都一点问题没有,但是发布到客户的服务器后触发某button的时候就会报这个错误,我当时就提出是服务器的问题,但是形式比人强,客户硬是让我想办法解决,折腾到凌晨2点多,最后还是换了一台服务器,问题立马就没了···时隔5天,我再打开一开始发布到有问题的服务器上的项目,这个问题已经没有了···

7.在webgl中使用对象池模式可能会出现莫名其妙的状况:

比如根据接口返回的数据生成一批元素的时候,在Editor或者本地测试都没有问题,但是发布到服务器后可能会出现部分元素未生成的情况,经过排查接口返回的数据是没有问题的,对象池的逻辑也是没有问题的;最后停用了对象池,而是每次结束后都destroy掉所有元素,然后重新生成,这样就不再出现问题。

8.在webgl中调用接口动态生成元素问题:

如果用户的网速够慢、手机购卡,用户可以连续触发生成功能,导致场景中的元素是设计中的两倍,所以涉及到网络的触发功能最好加一个状态字段防止用户多次触发。

9.IOS15.x系统兼容问题

IOS15.0~IOS15.2的系统版本开始兼容webgl2.0,但是15.2之前的webgl2.0应该是阉割过或者存在重大bug,而unity默认是webgl1.0与webgl2.0全部选中以提高兼容性,这就导致运行时99%以上几率会卡顿、卡死、黑屏,解决方案:打包时去掉webgl2.0.

10.控制台出现events错误

经检测出现此问题是因为新版本的unity开启了统计功能,访问的地址为:https://cdp.cloud.unity3d.com/v1/events 若想去掉可以通过关闭日志功能或者购买Pro版直接关闭HW statistics,路径为Player Setting->Other Setting->Configuration->Disable HW Statistics 勾选;Edit->Preferences->General 勾选Disable Editor Analytics

11.不支持Microphone类

发布webgl时会直接报错提示webgl不支持Microphone类,目前解决方案是通过js交互利用js的麦克风来实现webgl的录音功能,如果功能不是特别复杂,可以使用下面的库

GitHub - tgraupmann/UnityWebGLMicrophone: WebGL Microphone module for Unity

unity webgl踩坑指南相关推荐

  1. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

  2. pytorch .item_从数据到模型,你可能需要1篇详实的pytorch踩坑指南

    原创 · 作者 | Giant 学校 | 浙江大学 研究方向 | 对话系统.text2sql 熟悉DL的朋友应该知道Tensorflow.Pytorch.Caffe这些成熟的框架,它们让广大AI爱好者 ...

  3. tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南

    上周我们的开发小哥哥带领我们一起领略了开发中遇到的各种问题,以及基于SaaS模式的平台技术架构及实现.本周我们换个方向,由高级开发工程师秋哥带领大家共同探讨下小程序开发中踩过的坑.秋哥会从公司的几个小 ...

  4. Git Commit Message校验踩坑指南

    背景 在团队多人开发中,规范的commit message可以快速定位代码提交历史,回溯问题根源,方便组内多人协作,提高团队效率. 本篇文章主要包含以下两方面内容: commitizen/cz-cli ...

  5. MacBook通过XGP玩女神异闻录5皇家版不踩坑指南

    XGP是微软Xbox游戏通行证服务,全称Xbox Game Pass,俗称西瓜皮. 女神异闻录5皇家版(P5R)登录了全平台,XGP会员可以通过云游戏在MacBook中游玩,本篇为MacBook玩P5 ...

  6. 联调中通wincall平台-踩坑指南

    开发踩坑指南 初始化阶段 new CTIPlus({token: user.token, //tokenagentPhone: user.phone, //坐席工号或者手机号agNo: user.ag ...

  7. Spring Cloud踩坑指南

    Spring Cloud踩坑指南 1 Spring Cloud搭建 参考 Spring Cloud 微服务技术栈:搭建高可用 Eureka Server.服务注册与发现 2 常见问题 2.1 修改ho ...

  8. openssl开发库安装时的踩坑指南

    序 前几天用linux编译一个提权脚本的时候报错 openssl/opensslv.h: 没有那个文件或目录 的问题 无论如何也解决不了,这下我记录一个踩坑指南防止下一个人掉进坑里 操作 总体介绍 首 ...

  9. Pychram连接mist远程服务器踩坑指南

    Pychram连接mist远程服务器踩坑指南 ##Mist使用方法 首先需要到MistGpu官网注册一个账号,注册就送8元的免费体验,Mist官网:https://mistgpu.com/,然后选择创 ...

  10. 阿里云天池【Docker练习场】踩坑指南

    阿里云天池[Docker练习场]踩坑指南 题目直达 提交环境搭建(基于macOS) Docker的安装与基本功能使用 Docker安装过程遇到的小问题 提交结果注意事项 提交时的镜像配置 项目结构规范 ...

最新文章

  1. linux终端定时器实验报告,定时器实验报告.doc
  2. HTML禁用Flash文件右键
  3. 腾讯或联姻优酷,微信嫁女模式引发互联网通婚潮流
  4. Linux下快速安装MySQL教程
  5. python生成词云代码无错窗口空框_10分钟教你用Python生成属于自己的词云图
  6. 【渝粤教育】国家开放大学2018年秋季 0529-21T高级英语阅读(1) 参考试题
  7. 华为服务器双系统教程,双系统安装教程
  8. 【Hill Cipher】希尔密码描述 by Xiaosi_lemon
  9. autojs获取手机背景图片,抓取壁纸
  10. APS Interview - Digital Circuit and Digital Logic I
  11. [NXP.iMX6UL] NFS服务器
  12. “2022零信任神兽方阵”启动调研,欢迎各单位填报信息
  13. swift和swiftui_SwiftUI和UIStackflow问题
  14. Excel快速合并多行数据
  15. 走近棒球运动·韩国职业棒球联盟·MLB棒球创造营
  16. unity3d/用户自由改变背景色
  17. discuz gbk php在utf8,Discuz!3.4论坛从GBK转换成UTF8的成功经验
  18. 反向迭代器和正向迭代器
  19. 第十章:大鸽同学在哪里?痴月熊学python
  20. Codeforces Round #222 (Div. 2)

热门文章

  1. day15爬虫(二手房数据)
  2. python提取文件中含某一字符串的行,并写入新的文件中
  3. 更实用 批量解析 Sanger 测序.ab1文件 出图出文本
  4. jsonp跨域原理(简单粗暴)
  5. 【190320】VC 视频捕捉与网络传输源代码
  6. openjudge 买书
  7. 排序公式 与 组合公式
  8. 使用idea在serviceImpl中配置radis
  9. Linux之nslookup命令使用详解—网络故障定位(一)
  10. 【微信】公众号扫码点餐功能(附源码)