Cocos备战面试

本文详细梳理了Cocos面试的关键知识点,包括内存管理、DrawCall优化、屏幕适配、性能卡顿优化等Cocos核心技术;深入探讨了数据结构与算法、项目经验、网络基础、图形学和OpenGL、JavaScript以及ES6的相关知识。同时,涵盖了从微信小游戏到Android和iOS平台的特性和开发注意事项,最后还涉及到了职业规划和技术管理。

操作系统
js
ts
es6
前端
面向对象
性能优化

Cocos相关

1. 内存管理

引用计数来管理内存,创建时计数为1,调用retain计数加1,release计数减1,为0时释放内存。
常见的addChild和removeChild会分别加1减1。autoRelease把节点加到自动释放池中,
在当前帧结束时,池中的节点会调用一次release,起到延时自动释放的作用。

2. DrawCall优化

DrawCall 是一种行为(指令),即 CPU 调用图形 API,命令 GPU 进行图形绘制。
由于 DrawCall 带来的 CPU 及 GPU 的渲染状态切换消耗,往往需要通过批次合并来降低 DrawCall的调用次数。
引擎默认会自动合批,但需要保证相邻的渲染状态相同,减少DrawCall主要方式就是避免打断合批的情况,包括
 1. 纹理状态:相邻渲染(节点)使用的图片不是同一张
 2. 混合模式不一样
 3. 模板状态不一样(裁剪)
 
针对这些情况,优化方案就有
 1. 使用静态合图,图集或自动图集,相邻节点用的图打包到同一张图里
 2. 尽量少修改混合模式
 3. 文字开启动态合图,文字实际上是用字体文件生成的图片数据,把它和静态的图片一起在内存中合成一张图。
 4. 动态变化的文字使用fnt字体
 5. ScrollView和其他用了模板的组件(Mask)尽量放到节点后面以避免打断合批

3. 屏幕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyzz0612

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值