常见坑:
材质合批也消耗性能,在模型和材质都一致时才会合批,场景中满足该条件的模型较多时再勾选合批项。合批的节点在增加时会消耗大量计算,所以在节点中有大量骨骼动画时,会出现短暂卡顿,在场景中不断增加的节点不要用合批。
多场景项目模型开启预烘焙时,不同场景间模型动画播放异常。
同一个场景下,模型预烘焙开启后,实例多个切换动画也会异常(比如场景内箭塔从1只插槽升级到3只插槽这个动画播放会异常)
Animation事件回调尽量用once,用on可能会引起无限递归。
3DMax导出模型动画,挂点必须是实体(可以是个立方体,然后隐藏),单纯的挂Dummy不好用。
脚本中的Animation和Node注意要导入模块内的 import { Node, Animation } from 'cc'; 因为浏览器dom也有同名类 默认是浏览器dom类
使用Animation修改材质球相关属性时,会生成单独的材质球(即使没有播放也会新生成),数量多了会导致drawcall很高影响性能
两个Plane之间需要留一些距离,不然可能会出现闪烁
两个有透明材质的片视觉会相互干扰,调整高度也解决不掉,可以使用Sorting组件来进行层级排序
游戏调试能正常进入游戏,发布后闪屏一直显示不消失, 先检查是否调用了 window.setLoadingProgress(100); 如果使用了Language.init初始化多语言资源,注意检查下游戏是否有浏览器的语言
天空盒不要用HDR,HDR打正式包会压缩,丢失颜色数据导致模糊,用ldr(单张jpg),cocos默认提供的两个天空盒中有一个就是用的图片,可以复制修改。
使用角色控制器时需注意角色控制器自身不会随节点进行旋转,如长方形的卡车需要使用角色控制器时在车头部添加圆形控制器,卡车模型需将车头拖拽至角色控制器的锚点位置,可解决部分长方形角色控制器不旋转问题
做多语言时,图片的Size Mode要选择Raw,并且去掉已勾选的Trim,并且多语言的图片像素尺寸应该一样大。
制作地贴时,使用transparent不会接受阴影,应选择opaque并勾上Use Alpha Test。地贴要用无光照材质。
使用动力学刚体时,如果一个立方体刚体一直卡在某个角度,可以检查下collider的体积是不是很小,可以通过加大质量解决
多语言Spritei18n组件默认要设置成英文,否则运行时其它预言不生效。
大的球形模型接收阴影时 阴影Shadow Distance距离不能太大 不然会导致阴影绘制2次
IOS接收不到视频准备就绪回调,需要直接调用播放方法,Android可以接受到视频准备就绪的回调,可以在回调里播放视频
性能相关 :
多关注drawcall和面数
3d模型在第一次显示时才会解析数据,并上传数据到webgl层,这个过程很耗时