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来发生普通碰撞事件也可以,看我另一个文章。但是好像发生不了触发器事件。

相关推荐
xqqxqxxq5 天前
《智能仿真无人机平台(多线程 V4.0)技术笔记》(集群进阶:多无人机任务分配与碰撞规避)
笔记·无人机·cocos2d
xqqxqxxq7 天前
《智能仿真无人机平台(多线程V3.0)技术笔记》
笔记·无人机·cocos2d
xqqxqxxq10 天前
《智能仿真无人机平台(多线程V2.0)技术笔记》(线程进阶: 无人机自动防空平台开发教程)
笔记·无人机·cocos2d
boneStudent11 天前
基于STM32F745的完整无人机飞控系统
stm32·无人机·cocos2d
mqjFKmYf11 天前
电镀生产线组态王6.53仿真程序5带配套西门子S7-200PLC程序和IO表,带运行效果视频
cocos2d
pVPkTAeVGPdZ12 天前
组态王与STM32F103VET6单片机Modbus协议通讯+三菱协议通讯源码组态王软件
cocos2d
weixin_4093831223 天前
cocos shader闪光
游戏引擎·cocos2d
weixin_4093831224 天前
cocos shader三角流光
游戏引擎·cocos2d
weixin_4093831224 天前
cocos shader流光文字 不显示透明部分
游戏引擎·cocos2d
CodeCaptain1 个月前
Cocos Creator 3.8.x 可对tiled 1.4.x进行的操作或分析有哪些
经验分享·游戏·typescript·cocos2d