cocos creator开发中遇到的问题和解决方案-问题汇总

时间:2024-04-11 15:47:10

代码修改Position坐标不生效

首先要通过打log或者断点排除下是不是逻辑上的问题,还有是不是有动画相关把位置修改了。我遇到的问题是坐标修改被widget组件覆盖了。

纹理压缩包体变大

cocos 的压缩纹理是这样子的,如果你选择的压缩纹理配置了好几个格式,比如这里ASTC、PVR、PNG等,那么最终会有这几份压缩纹理文件,在加载的时候,Cocos 会根据设备的实际情况,加载里面其中一份,比如Android上可能会优先 ASTC,但是只是优先,iOS 上可能会优先加载PVR,但是只是优先,不管如何,这样子的做法,都是为了让设备加载最合适的纹理,以达到性能最优,在达到性能最优的这个目的前提下,多准备一些压缩纹理是没错的,但这个确实是会导致包体大一点。解决办法?比如你是做Android手游的,那么其实只需要再压缩纹理配置中,选择ASTC就可以了(因为ASTC的市场份额可以达到99%的设备都能加载),其他格式的压缩纹理可以全部删除,这样子就可以解决包体过大。
目前做的是web项目,所以只保留了PNG压缩,以保证包体大小。

IOS上WEB无法播放音频

多半是音频格式导致的,我为了减小包体用的ogg格式,PC和Android上都正常,只有IOS上测试没有声音。把音频资源改为wav格式解决。

IOS上不显示UI和图片

检查目标的Z值。虽然是2D模式但是Z也可以被修改。

IOS上无法使用OpenUrl打开网页

我用node.on的touch start监听的点击事件,点击事件能被触发但是没有打开链接。解决方案有两种:第一种是将挂载跳转的脚本直接放在Canvas下面,第二种是通过Button组件调用。
location.href=url也是打开网页并且没有上述问题,但是它在安卓和PC上是覆盖打开,不是打开新窗口。

代码修改color的值没有生效

不能用比如color.a = 1的方式修改,得用color = newColor的写法才能触发刷新颜色表现。