发布微信平台,首次加载场景黑屏

@1070384201
我提一个建议,所有res资源你都放远程,把你首屏使用的资源在本地留一份(因为用户最先看到的就是它)。其它的按需加载或者在首屏里预加载,这样用户体感会好很多。

1赞

加了loading界面,然后,使用预加载场景。但是,有时候,会预加载完,回调后跳转到主场景了,但是有时候主场景还会黑屏

上代码

cc.director.preloadScene(“menu”, function () {
cc.director.loadScene(‘menu’);
});

loading 场景里主要做了这个预加载场景函数,场景加载完了,跳转过去。

就算预加载完了,但是第一次载入时,unpacker它unpack时还是会卡一下。

那我给他添加一个计时器,加载完了,等待两秒再进去,这样行不

不是很清楚,好像在正式进入场景使用到对应资源的时候才会做这个操作。

第一次加载场景

之后再加载场景

我这边是,如果黑了,就一直黑下去,不是闪了一下黑屏。调试模式的时候,不会又任何问题。就是正式模式,会出现各种黑屏。但是,重启,或者重新预览,就没问题。

资源太大,下载超时后就会出现你说的情况。

http://compresspng.com/zh/
先压缩一下图片吧

我猜测你在项目中使用了图集并且图集很大。
优化建议:对每个场景使用到的资源单独打包图集,公用按钮banner等打包一个图集。

或者

你在项目中使用了字体库ttf,它十分大,请删除掉后创建对应相同文件名的文件。
比如: 我在项目中使用了arial.ttf,那么构建项目完成后 你就去搜这个文件,然后新建一个名字一样的文件替换它。

说一下为什么要替换ttf,因为删除后不替换会导致下载超时。

估计是使用了ttf字体的原因,ttf字体一个就好几M。

图片都是压缩过了的,资源还是很大:joy:

搜了一下,工程里没有使用到艺术字体:persevere:

不是说的fnt,而是用到了truetuType字体文件(ttf)。

工程里没用到ttf文件,全局搜索也没搜到ttf文件,这样的话,应该是没有这个文件的原因。:cry:

我用的是1.10.2,也会有这个问题,比较大的场景就会出现黑屏,第二次就好了,由于第一次无法看后台LOG,只能第二次看,但第二次就不会黑屏了,所以报错信息很难收集,偶尔可以在第一次也能看到控制台,报错的是我的代码逻辑报空了,那应该是因为场景还没加载完,怎么感觉是场景还没加载完代码就开始跑了。

来填个坑,与COCOS人员沟通过之后,他说setStorageSync是读写数据时候报错了,后来我检查一下我的代码,发现在onLoad方法里有get set locastorage的操作,他们都放到start方法了,黑屏就没有出现了。所以做远程加载的时候,不要在onLoad里面读写数据。

1赞

十分感谢,之前那个问题,我是使用了进度条的形式,解决了。感谢提供新方法:grin:

哪里可以获取进度函数?