Unity3D开发之OnCollisionXXX触发条件

A和B碰撞触发OnCollision函数条件如下:

1.A和B都要有collider。(子物体有也可以)

2.A和B至少有一个刚体(Rigidbody)组件,且刚体的isKinematic为false。如果为true不会触发。

3.挂载脚本的物体必须有刚体,没有刚体不会触发。

应用场景:传送带和货物之间且检测货物是否在传送带上。尤其是复杂的顶升移栽机,有链式传送带和辊道组成。实现方式:是获取顶升移栽机下的所有rd组件,并附上碰撞检测脚本,

  DeviceOccupiedState deviceOccupiedState;
    public void Regist(DeviceOccupiedState deviceOccupiedState)
    {
        this.deviceOccupiedState = deviceOccupiedState;
    }

    public void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.CompareTag(ConstVariable.MaterialTag))
        {
            deviceOccupiedState.OnCollisionEnter();
        }
    }


    public void OnCollisionExit(Collision collision)
    {
        if (collision.collider.CompareTag(ConstVariable.MaterialTag))
        {
            deviceOccupiedState.OnCollisionExit();
        }
    }

如上:把子物体的碰撞发送到设备总管理中,这样就可以获取到货物是否在顶升移栽机上了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值