Cocos Creator V3.2 刚体和碰撞组件碰撞回调事件-初学者3篇

1 首先要了解两个概念 : 触发事件(不产生物理碰撞效果),碰撞事件(有碰撞效果

    A: 触发事件 

        触发事件:触发事件由触发器生成(引入问题:什么是触发器?

        触发器:触发器是 Is Trigger 属性为 true 的碰撞组件。当发生碰撞时,触发器不会产生                            碰撞效果,所以触发器只用于碰撞检测。       

      如图所示:

 

触发事件

触发事件目前包括以下三种:

事件说明
onTriggerEnter触发开始
onTriggerStay触发保持
onTriggerExit触发结束

其中可产生触发事件的碰撞对为:

类型静态刚体运动学刚体动力学刚体
静态刚体
运动学刚体
动力学刚体

注意:前提是两者都必须带有碰撞组件,并且至少有一个是触发器类型。

如果想要下执行触发事件必须把碰撞组件的 Is Trigger 勾选上 (设置为True)也就是碰撞组件变成了触发器

测试代码如下

 ColliderStr = this.getComponent(BoxCollider);
       
  ColliderStr?.on('onTriggerEnter', this.onTrigger, this);
 onTrigger(event: ITriggerEvent) {
        console.log(event.type, event);
    }

 

B:碰撞事件 

只有碰撞组件才能产生碰撞事件,触发组件不能回调碰撞事件

当碰撞组件的Is Trigger 未勾选上 (设置为False)时才会调用碰撞回调事件

 

 

 ColliderStr = this.getComponent(BoxCollider);
        //1碰撞事件 
        ColliderStr?.on('onCollisionEnter', this.onICollision, this);

  onICollision(event: ICollisionEvent) {
        console.log(event.type, event);
    }

碰撞事件

碰撞事件根据碰撞数据生成,静态类型的刚体之间不会产生碰撞数据。

目前碰撞事件包括以下三种:

事件说明
onCollisionEnter碰撞开始
onCollisionStay碰撞保持
onCollisionExit碰撞结束

其中可产生碰撞事件的碰撞对为:

类型静态刚体运动学刚体动力学刚体
静态刚体
运动学刚体
动力学刚体

注意:前提是两者都必须带有碰撞组件,并且都必须是碰撞器类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值