Unity-Collider
Unity3D 中碰撞体(Collider)组件用于检测运动的物体之间是否发生碰撞,也可以作为触发器使用。产生碰撞的条件是:
- 2 个游戏对象都有 Collider
- 至少有一个游戏对象有 Rigidbody
- 2 个游戏对象保持相对运动(一个 Cube 放在 Plane 上,不会产生碰撞,因为没有相对运动)
碰撞体的边界不一定与游戏对象的边界一致,用户可以点击 Edit Collider 按钮编辑碰撞体的边界,也可以在属性面板里调整碰撞体边界。另外,用户可以勾选 Is Trigger 选项,作为触发器使用(不勾选将作为碰撞器使用),作为触发器使用时,不会产生碰撞,游戏对象之间会相会穿越。
1)回调方法
碰撞器回调方法:
1 | // 碰撞开始 |
触发器回调方法:
1 | // 触发开始 |
说明:碰撞器和触发器对应的回调方法都是 MonoBehaviour 里的方法,用户可以在脚本组件里重写这些方法,碰撞器和触发器对应的回调方方法只能执行其一,当作为触发器使用时,就不能执行碰撞器对应的回调方法。
2)回调参数
碰撞器回调方法的 Collision 参数
1 | // 碰撞对象的碰撞体组件 |
触发器回调方法的 Collider 参数
1 | // 获取碰撞体的MeshRenderer组件 |
引用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文西的小屋!
评论
TwikooGitalk