游戏开发常见问题


常见坑:

  1.  材质合批也消耗性能,在模型和材质都一致时才会合批,场景中满足该条件的模型较多时再勾选合批项。合批的节点在增加时会消耗大量计算,所以在节点中有大量骨骼动画时,会出现短暂卡顿,在场景中不断增加的节点不要用合批。

  2.  多场景项目模型开启预烘焙时,不同场景间模型动画播放异常。

  3.  同一个场景下,模型预烘焙开启后,实例多个切换动画也会异常(比如场景内箭塔从1只插槽升级到3只插槽这个动画播放会异常)

  4. Animation事件回调尽量用once,用on可能会引起无限递归

  5. 3DMax导出模型动画,挂点必须是实体(可以是个立方体,然后隐藏),单纯的挂Dummy不好用。

  6. 脚本中的Animation和Node注意要导入模块内的 import { Node, Animation } from 'cc'; 因为浏览器dom也有同名类 默认是浏览器dom类

  7. 使用Animation修改材质球相关属性时,会生成单独的材质球(即使没有播放也会新生成),数量多了会导致drawcall很高影响性能

  8.  两个Plane之间需要留一些距离,不然可能会出现闪烁

  9. 两个有透明材质的片视觉会相互干扰,调整高度也解决不掉,可以使用Sorting组件来进行层级排序

  10. 游戏调试能正常进入游戏,发布后闪屏一直显示不消失, 先检查是否调用了 window.setLoadingProgress(100);  如果使用了Language.init初始化多语言资源,注意检查下游戏是否有浏览器的语言

  11. 天空盒不要用HDR,HDR打正式包会压缩,丢失颜色数据导致模糊,用ldr(单张jpg),cocos默认提供的两个天空盒中有一个就是用的图片,可以复制修改。

  12. 使用角色控制器时需注意角色控制器自身不会随节点进行旋转,如长方形的卡车需要使用角色控制器时在车头部添加圆形控制器,卡车模型需将车头拖拽至角色控制器的锚点位置,可解决部分长方形角色控制器不旋转问题

  13.  做多语言时,图片的Size Mode要选择Raw,并且去掉已勾选的Trim,并且多语言的图片像素尺寸应该一样大。

  14.  制作地贴时,使用transparent不会接受阴影,应选择opaque并勾上Use Alpha Test。地贴要用无光照材质。

  15. 使用动力学刚体时,如果一个立方体刚体一直卡在某个角度,可以检查下collider的体积是不是很小,可以通过加大质量解决

  16.  多语言Spritei18n组件默认要设置成英文,否则运行时其它预言不生效。

  17. 大的球形模型接收阴影时 阴影Shadow Distance距离不能太大 不然会导致阴影绘制2次

  18.  IOS接收不到视频准备就绪回调,需要直接调用播放方法,Android可以接受到视频准备就绪的回调,可以在回调里播放视频

性能相关

  1. 多关注drawcall和面数

  2. 3d模型在第一次显示时才会解析数据,并上传数据到webgl层,这个过程很耗时


注:本文转载自常见问题,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。

评论0



    0.167996s