碰撞检测
- 碰撞产⽣的条件
- 两物体都有Collider
- 至少有⼀个带有RigidBody
- 回调⽅法
- OnCollisionEnter(Collision other) 碰撞开始⼀瞬间时调⽤⼀次
- OnCollisionStay(Collision other) 碰撞过程中相对运动时持续调⽤,每帧⼀次
- OnCollisionExit(Collision other) 碰撞分离⼀瞬间时调⽤
- 回调⽅法参数 Collision
- collider 当前物体所碰撞到的游戏对象
(游戏对象的碰撞体组件) - contacts[] 所有碰撞点的信息
normal
point(碰撞点的坐标) Vector3
- collider 当前物体所碰撞到的游戏对象
触发事件
- 触发事件产⽣的条件
- 两物体都有碰撞体组件
- ⾄少有⼀个带有刚体
- 两碰撞体⾄少有⼀个是触发器
- 设置触发器
将碰撞体组件中的isTrigger属性勾选 - 回调函数
- OnTriggerEnter(Collider other) 进⼊触发器的时候调⽤⼀次
- OnTriggerStay(Collider other) 处于某个触发器之中的时候持续调⽤,每帧⼀次
- OnTriggerExit(Collider other) 退出触发器的时候调⽤⼀次
物理射线(用于检测碰撞体)
- 射线类Ray 射线组成部分
- 起点(origin)
- ⽅向(direction )
- 获取鼠标屏幕射线 ScreenPointToRay 将屏幕上的⼀个点转换成射线
发射射线- Physics.Raycast
发射物理射线,返回⼀个碰撞
检测对象RaycastHit - Physics.RaycastAll
发射物理射线,返回所有碰撞
检测对象RaycastHit
- Physics.Raycast
- RaycastHit
- collider
碰撞物体的Collider组件 - point
碰撞点坐标
- collider