Unity学习:碰撞检测,触发器和物理射线

碰撞检测

  • 碰撞产⽣的条件
    • 两物体都有Collider
    • 至少有⼀个带有RigidBody
  • 回调⽅法
    • OnCollisionEnter(Collision other) 碰撞开始⼀瞬间时调⽤⼀次
    • OnCollisionStay(Collision other) 碰撞过程中相对运动时持续调⽤,每帧⼀次
    • OnCollisionExit(Collision other) 碰撞分离⼀瞬间时调⽤
  • 回调⽅法参数 Collision
    • collider 当前物体所碰撞到的游戏对象
      (游戏对象的碰撞体组件)
    • contacts[] 所有碰撞点的信息
      normal
      point(碰撞点的坐标) Vector3

触发事件

  • 触发事件产⽣的条件
    • 两物体都有碰撞体组件
    • ⾄少有⼀个带有刚体
    • 两碰撞体⾄少有⼀个是触发器
  • 设置触发器
    将碰撞体组件中的isTrigger属性勾选
  • 回调函数
    • OnTriggerEnter(Collider other) 进⼊触发器的时候调⽤⼀次
    • OnTriggerStay(Collider other) 处于某个触发器之中的时候持续调⽤,每帧⼀次
    • OnTriggerExit(Collider other) 退出触发器的时候调⽤⼀次

物理射线(用于检测碰撞体)

  • 射线类Ray 射线组成部分
    • 起点(origin)
    • ⽅向(direction )
  • 获取鼠标屏幕射线 ScreenPointToRay 将屏幕上的⼀个点转换成射线
    发射射线
    • Physics.Raycast
      发射物理射线,返回⼀个碰撞
      检测对象RaycastHit
    • Physics.RaycastAll
      发射物理射线,返回所有碰撞
      检测对象RaycastHit
  • RaycastHit
    • collider
      碰撞物体的Collider组件
    • point
      碰撞点坐标

你可能感兴趣的:(Unity学习:碰撞检测,触发器和物理射线)