之前3.x某个版本做了微信平台的自动首屏加载优化,在引擎代码加载完成前会先渲染一张图片,但是3.6.0,3.6.1这个优化效果消失了,直接变成黑屏了几秒。
3.5.1版本的游戏这个优化有效,同样的游戏升级到3.6.0/3.6.1这个优化效果就没有了。
这可咋办,新游戏是用3.6.0开发的,难道要退版本吗。
相同游戏引擎版本降低到3.5.1就可以了。
引擎组的快修修这个bug吧,不然哪还敢升级啊!
方便录个屏看下情况?用 helloworld 测试没看出有什么区别
自己顶一下
自己顶一下*2
有定制过构建模板?3.6 的流程有点不同,新建的空工程也会?
空包也会出现这种情况。
新建空项目,在项目目录下创建build-templates文件夹,在该文件夹下再创建一个wechatgame文件夹,然后随便复制需要替换的图片,名字叫splash.png。
需要resources下的文件多一些,完全空包的话就瞬间加载完了,就看不出问题了。
我导入了一个石头模型,然后复制了5-6次(确保打包后的文件大一些但不要超过上限),把resources文件夹勾选为微信分包,打包。
打完包后11m左右。
3.6.1就会出现加载黑屏。而3.5.1就可以正常显示提前准备好的首屏图片。
我把工程发一下
地址https://pan.baidu.com/s/1tc9ZWmlLjTdGtOKL6dN9Ww?pwd=1234
提取码1234
测试是有首屏,只是很快就过去了,你如果测试没有,打开微信小游戏那个开发调试,看下有没有报错,刚开始看是 demo 中使用了 3d 粒子系统,项目设置里却把 3d粒子系统模块剔除了.
你用引擎3.6.1版本打包测过了吗
我发在百度云版本是3.5.1,这个版本是有首屏加载的。
粒子那个可能当时又在测试粒子材质修改啥的,忘记删除了,直接删除打包就可以了。
自己顶一下
确实解决了!
非常感谢!
你要全屏展示这个图得在 firstscreen.js 里做下适配 ,updateVertexBuffer 里面
请问该怎么修改呢。
让我修改 firstscreen.js里面的updateVertexBuffer方法有点困难
first-screen.js这个函数进行适配更改
function updateVertexBuffer() {
let d_h = canvas.height;
let d_w = canvas.width;
let t_h = image.height;
let t_w = image.width;
let scale = 1;
let ratio1 = d_h / t_h;
let ratio2 = d_w / t_w;
// 根据宽度进行首屏适配,ratio1高度这个暂时用不到
let ratiomax = ratio2;
let i_h = Math.round(t_h * ratiomax);
let i_w = Math.round(t_w * ratiomax);
let r_w = d_w / i_w;
let r_h = d_h / i_h;
r_w = r_w * scale;
r_h = r_h * scale;
const widthRatio = 1/r_w;
const heightRatio = 1/r_h ;
const vertices = new Float32Array([
widthRatio, -heightRatio, 1.0, 1.0,
widthRatio, heightRatio, 1.0, 0.0,
-widthRatio, -heightRatio, 0.0, 1.0,
-widthRatio, heightRatio, 0.0, 0.0,
]);
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
}