2 Star 11 Fork 8

dony / 学习笔记

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
creator物理组件和碰撞组件的区别.md 2.46 KB
一键复制 编辑 原始数据 按行查看 历史
dony 提交于 2021-10-28 23:13 . creator物理组件和碰撞组件的区别

Creator 物理组件和碰撞组件的区别

1,移动刚体

当一个节点要进行移动时,我们经常会使用setPostion, cc.MoveBy, cc.MoveTo和缓动系统来进行,但是刚体的移动有点不同,setPostion对它不起作用,不过刚体可以通过如下方式移动:

  • 瞬时动作cc.place来进行移动而且不会影响刚体原本的运动轨迹

  • Action的所有动作。cc.moveBy;cc.moveTo;等等

2,碰撞组件和物理组件的区别

碰撞组件没有类型之分,只要相交就会发生碰撞事件,如果不对碰撞进行处理,那就没有任何影响。

物理碰撞组件分类型,因为他们先会绑定刚体。如果刚体类型不同则会有不同的效果。

和Dynamtic类型刚体绑定的PhysicsBoxCollider会受重力影响,可以设置速度;

和Static类型刚体绑定的物理组件,不会受重力影响,不可以设置速度,可以通过设置位置让其移动;

和Kinematic类型刚体绑定的物理组件,不受重力影响,可以设置速度。

3,刚体,物理组件,碰撞组件的区别

  • 绑定了Dynamic(运动)类型的物理组件不能穿透绑定了Static(静态)类型的物理组件;

  • 绑定了Dynamic类型的物理组件不能穿透绑定了Kinematic类型的物理组件;

  • Static和Kinematic不会触发碰撞事件,Static和Static;Kinematic和Kinematic不会触发碰撞事件;

4,物理组件的碰撞回调

  1. RigidBody要开启碰撞监听。
  2. 生命周期函数如下:
//在函数碰撞体刚开始接触时调用一次。
onBeginContatct: functioncontactselfColliderotherCollider{}

//在两个碰撞体结束接触时被调用一次
onEndContactfucntion(contact,setCollider,otherCollider){}

//每次要处理碰撞体接触逻辑时被调用
onPreSolvefunction(contact,selfCollider,otherCollider){}

//每次处理完碰撞体接触时被调用
onPostSolve:fucntion(contact,selfCollider,otherCollider){}

5,碰撞组件的碰撞

//碰撞组件的碰撞监听默认是关闭的,因此要先开启
var manager = cc.director.getCollisionManager();
manager.enabled = true;

生命周期函数如下:

//当碰撞产生时调用
onCollisionEnterfunction(other,self){}

//在碰撞产生后,在碰撞结束前,每次计算完碰撞结果后调用
onCollisionStay:function(other,self){}

//当碰撞结束后调用
onCollisionExit;function(other,self){}
1
https://gitee.com/dony1122/note.git
git@gitee.com:dony1122/note.git
dony1122
note
学习笔记
master

搜索帮助