在Unity游戏引擎中,Collider组件是用于检测游戏对象之间的碰撞的关键组件之一。Collider本身无法主动触发碰撞,它只是一个用于碰撞检测的形状或边界。
在Unity中,要实现碰撞触发,你需要借助其他组件,如Rigidbody(刚体)和触发器(Trigger)。以下是两种常见的情况:
-
使用刚体和Collider:如果两个游戏对象都有Collider组件,并且其中一个或两个对象都有Rigidbody组件(具有物理属性),它们之间的碰撞将由物理引擎自动处理。你可以通过在脚本中实现 OnCollisionEnter、OnCollisionStay 或 OnCollisionExit 方法来检测碰撞事件,并在发生碰撞时触发相应的逻辑。
-
使用触发器(Trigger):你可以将Collider组件设置为触发器,这意味着它不会实际阻止碰撞发生,而是用于触发碰撞事件。当两个Collider中的至少一个设置为触发器时,你可以使用 OnTriggerEnter、OnTriggerStay 或 OnTriggerExit 方法来检测碰撞事件,并在发生碰撞时触发相应的逻辑。
总结来说,Unity的Collider组件本身无法独自产生碰撞触发,但是通过与刚体或触发器组件结合使用,你可以实现碰撞事件的检测和触发。
两物体都添加碰撞盒cube添加触发脚本 无触发事件产生
给cube添加刚体出现下坠
取消useGravity 两物体接触成功触发事件
两物体至少要有一方勾选 Is Trigger 因为采用的是Trigger触发
两方都添加触发脚本 都会触发事件跟那方打开Trigger选项无关
总结:想要触发事件必须collider与刚体结合使用 只要任何一方添加刚体,任何一方勾选Trigger 任何一方方只要挂触发事件的脚本就会触发事件 与刚体与勾选Trigger并无关系
父子继承性
子物体添加刚体 父物体始终不会触发事件 但是父物体添加刚体组件子物体可以继承 但是子物体必须勾选Trigger才能触发事件 即使对方勾选也不会触发 如果刚体在子物体上 子物体不必勾选 即可触发事件
子物体不挂载脚本 但是身上的碰撞盒依然是父物体的一部分 所以为cube 子物体添加碰撞盒 当接触子物体碰撞盒同样会触发事件 但再次接触cube碰撞盒会再次触发事件