Cocos creator避坑指南(一些比较容易错的地方)

持续更新中...

代码方面

1.存一个节点的值时,一定要存.clone值,不要直接存,否则存的只是引用,完全没用。

举个例子this.targetNode.worldPosition.clone();不管是位置信息还是颜色信息等等,都要存.clone()的值,这是js的特点,C#并不会这样

2.用碰撞事件和触发器事件多一步操作,看我另一个帖子。

3.有的时候AI给不出正确的代码,学会在浏览器里调试。console.log(object.keys(xxx));可以看到这个东西下面的属性,同时学会断点调试(和控制台配合)。还有windows["xxxx"]=xxx;这种设置全局函数方便调试

4.打印不要用log();要用console.log();因为前者没法定位打印的位置,在浏览器控制台里就会发现前者是debug.ts打印的,后者打印是会显示你代码相应的位置

5.Cocos的默认坐标不是世界坐标,而是局部坐标。

编辑器方面

1.如果一个物体的代码里有缩放相关的代码,那么动画文件就不要涉及到缩放,否则即便动画文件里会导致这个物体来回放大缩小

2.和unity有所不同的是,coocs每创建一个2D的东西就会多创建一个相机,所以如果你是一个3D项目,本身3D的物体就需要一个相机,2D的UI就需要另一个相机。

3.和unity的碰撞有点不一样的是,Cocos想让两个物体碰撞,哪怕有一个是静止的,两个物体都要装刚体和碰撞体。静的物体的刚体就选static,动的物体如果既要被另一个物体的碰撞体挡住,也要受到碰撞事件的影响,那么就选动态的,然后刚体的线性因子就填1,0,1,角因子就填0,0,0

同时刚体质量为1,不受重力影响。如果动的物体用运动学,好像是会触发碰撞事件,但是不会被另一个物体的碰撞体挡住。

这里要注意:一定要在项目设置-物理,里面把碰撞矩阵该发生碰撞的层给勾上,这样才能发生碰撞/触发事件、才能被挡住等等。

4.玩家一般用人物控制器(character Controller)而不是用刚体+碰撞体,但是如果玩家要和其他东西发生碰撞事件,最好在玩家下面新建一个节点,节点上挂刚体+碰撞体,然后这个碰撞体最好和发生碰撞的物体的刚体选不同的group,否则很容易发生莫名其妙的错误。

其实强行用character contorller来发生普通碰撞事件也可以,看我另一个文章。但是好像发生不了触发器事件。

相关推荐
林鸿群2 天前
VS2026 编译 Cocos2d-x 项目完整指南:解决兼容性问题
游戏引擎·cocos2d
林鸿群2 天前
VS2026 编译 Cocos2d-x 老项目完整指南:从崩溃到完美运行
游戏引擎·cocos2d
IT猿手3 天前
基于四旋翼无人机离散建模与增量PID控制及轨迹跟踪研究,MATLAB代码
开发语言·matlab·无人机·cocos2d·路径规划·动态路径规划
国科安芯6 天前
星载电源遥测模块抗辐照RISC-V MCU的性能适配与应用
单片机·嵌入式硬件·无人机·cocos2d·risc-v
林鸿群7 天前
Cocos2d-x v4 官方文档学习总结
学习·游戏引擎·cocos2d
林鸿群7 天前
Cocos2d-x 官方仓库学习总结
学习·游戏引擎·cocos2d
林鸿群7 天前
Cocos2d-x Lua 游戏前端工程架构深度解析
游戏·mvc·lua·游戏开发·cocos2d·游戏架构
国科安芯11 天前
抗辐照MCU在高空长航时无人机热管理系统中的可靠性研究
单片机·嵌入式硬件·架构·无人机·cocos2d·risc-v
应用市场11 天前
无人机动态推力分配与倾斜纠正原理详解
游戏引擎·无人机·cocos2d
_Li.25 天前
Simulink - 6DOF (Euler Angles)
人工智能·算法·机器学习·游戏引擎·cocos2d