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

相关推荐
jumu2026 天前
COMSOL凝固模拟:从溶质偏析到枝晶生长实战
cocos2d
z2014z6 天前
Cocos Creator Playable 广告项目文件夹结构与命名规范
cocos2d
怣疯knight7 天前
Cocos creator如何使用onCollisionEnter或者onTriggerEnter
cocos2d
怣疯knight10 天前
Cocos creator判断节点是否能用的方法
unity·cocos2d
Doc.S10 天前
多无人机任务自定义(基于ZJU-FAST-Lab / EGO-Planner-v2)
游戏引擎·无人机·cocos2d
天途小编11 天前
无人机操控模式解析:美国手、日本手、中国手
游戏引擎·无人机·cocos2d
Unity打怪升级14 天前
【Unity精品源码】Ultimate Character Controller:高级角色控制器完整解决方案
游戏·unity·ue5·游戏引擎·godot·游戏程序·cocos2d
7***n751 个月前
C++在游戏中的Cocos2d-x
游戏·游戏引擎·cocos2d
Marvin_Kai1 个月前
Cocos Creator 3.x 实现“粒子特效” 的 点击触发
cocos2d