Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BIG_BUG644
minigame-unity-webgl-transform
提交
2b94ab93
M
minigame-unity-webgl-transform
项目概览
BIG_BUG644
/
minigame-unity-webgl-transform
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minigame-unity-webgl-transform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2b94ab93
编写于
12月 20, 2022
作者:
Z
zhangjunkunn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: 视频demo文档
上级
383cad12
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
1 deletion
+60
-1
Demo/WX_Video/Assets/Plugins/TransparentBackground.jslib
Demo/WX_Video/Assets/Plugins/TransparentBackground.jslib
+1
-1
Demo/WX_Video/readme.md
Demo/WX_Video/readme.md
+59
-0
未找到文件。
Demo/WX_Video/Assets/Plugins/TransparentBackground.jslib
浏览文件 @
2b94ab93
...
...
@@ -4,7 +4,7 @@ var LibraryGLClear = {
if (mask == 0x00004000)
{
var v = GLctx.getParameter(GLctx.COLOR_WRITEMASK);
if (!v[0] && !v[1] && !v[2] && v[3])
if (
GameGlobal.enableTransparentCanvas &&
!v[0] && !v[1] && !v[2] && v[3])
// We are trying to clear alpha only -- skip.
return;
}
...
...
Demo/WX_Video/readme.md
0 → 100644
浏览文件 @
2b94ab93
# 视频demo
部分游戏需要在视频上面盖交互元素,比如跳过播放的按钮
1.
实现原理
默认视频层级最高,会盖住游戏画面。通过修改小游戏视频创建时的参数
`underGameView=true`
实现视频在游戏画布之下播放。
画布有内容的地方显示游戏画面,没内容的地方显示视频。
https://developers.weixin.qq.com/minigame/dev/api/media/video/wx.createVideo.html
2.
unity配置
-
主相机clearFlag改成solidColor,颜色改为黑色
-
将此工程下的Plugins/TransparentBackGround.jslib放入你的工程
3.
小游戏配置
-
修改minigame/unity-sdk/video.js,新版插件会自动修改
```
WXCreateVideo(conf) {
const id = new Date().getTime()
.toString(32) + Math.random().toString(32);
// 增加这之间部分代码
const params = JSON.parse(conf);
if (params.underGameView) {
GameGlobal.enableTransparentCanvas = true;
}
videos[id] = wx.createVideo(params);
// 增加这之间代码
return id;
},
WXVideoAddListener(id, key) {
if (videos[id]) {
videos[id][key]((e) => {
moduleHelper.send('OnVideoCallback', JSON.stringify({
callbackId: id,
errMsg: key,
position: e && e.position,
buffered: e && e.buffered,
duration: e && e.duration,
}));
if (key === 'onError') {
GameGlobal.enableTransparentCanvas = false; // 增加这行
console.error(e);
}
});
} else {
console.error(msg, id);
}
},
WXVideoDestroy(id) {
if (videos[id]) {
videos[id].destroy();
} else {
console.error(msg, id);
}
GameGlobal.enableTransparentCanvas = false; // 增加这行
},
```
配置参考:https://support.unity.com/hc/en-us/articles/208892946-How-can-I-make-the-canvas-transparent-on-WebGL-
修改了下清理规则,否则可能导致正常情况下游戏画面异常。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录