请选择 进入手机版 | 继续访问电脑版

[相关技巧] Unity中webgl利用 避雷要素指南

[复制链接]
查看60 | 回复15 | 2021-9-13 15:03:22 | 显示全部楼层 |阅读模式
目次

1.不支持ios装备 播放音频(无论是MP3还是ogg格式)

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

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

  1. mergeInto(LibraryManager.library, {
  2. PlayAudios: function (audioname) {
  3. PlayAudio(Pointer_stringify(audioname));
  4. }
  5. });
复制代码

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

  1. /// <summary>
  2. /// 按照音频名播放音频
  3. /// </summary>
  4. /// <param name="audioname"></param>
  5. [DllImport("__Internal")]
  6. private static extern void PlayAudios(string _audioName);
  7. /// <summary>
  8. /// 播放js音频
  9. /// </summary>
  10. /// <param name="_audioName"></param>
  11. public void PlayJsAudio(string _audioName,bool _play)
  12. {
  13. PlayAudios(_audioName,_play);
  14. }
复制代码

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

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

  1. function PlayAudio(audioid,isplay) {
  2. var player = document.getElementById(audioid)
  3. if(isplay)
  4. {
  5. player.play();
  6. }
  7. else
  8. {
  9. player.pause();
  10. }
  11. }
复制代码

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

  1. <audio id="bg" preload="auto"><source src="Audios/bg.mp3" type="audio/mpeg"></audio>
  2. <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),如下图

Unity中webgl利用
避雷要素指南

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

Unity中webgl利用
避雷要素指南

3.发布到webgl的时间 留意 全部 Text都必要 利用 自定义的字体

否则全部 中文都不会表现 ,这里保举 利用 思源字体或阿里巴巴字体,这些字体中都有免费商用的,不用担心版权标题 。

Unity中webgl利用
避雷要素指南

4.若要更改loading界面

可以直接更换 打包后TemplateData文件夹中的图片,如下所示

Unity中webgl利用
避雷要素指南

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

Unity中webgl利用
避雷要素指南

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

​​​​​​​

Unity中webgl利用
避雷要素指南

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中调用接口动态天生 元素还有个坑

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

以上就是Unity中webgl利用 避雷要素的详细 内容,更多关于Unity中webgl利用 指南的资料请关注脚本之家别的 相干 文章!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 十二音阶囤 | 2021-9-13 18:15:46 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar 喜喜保镖撼 | 2021-9-16 22:51:10 | 显示全部楼层
楼上长在线啊?
回复

使用道具 举报

avatar 刘余文 | 2021-9-20 01:18:27 | 显示全部楼层
论坛的人气越来越旺了!
回复

使用道具 举报

avatar 温室小书生室d | 2021-9-20 19:50:48 | 显示全部楼层
哥回复的不是帖子,是寂寞!
回复

使用道具 举报

avatar 二级传播盅 | 2021-9-26 18:21:45 | 显示全部楼层
系统居然说我是在灌水,我有吗?
回复

使用道具 举报

avatar 123457660 | 2021-10-4 09:56:55 | 显示全部楼层
我裤子脱了,纸都准备好了,你就给我看这个?
回复

使用道具 举报

avatar 豆芽角角123 | 2021-10-6 13:20:07 | 显示全部楼层
admin楼主病的不轻啊!
回复

使用道具 举报

avatar 壮壮妈2017 | 2021-10-6 22:55:42 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,运动刷步数还是免费刷的,QQ和微信都可以刷,特别好用。访问地址:http://yd.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 沙941 | 2021-10-9 08:29:16 | 显示全部楼层
读了admin楼主的帖子,顿时马桶就通了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则