Unity3D学习笔记之碰撞器和触发器
碰撞器种类:
-
-
Sphere Collider(球碰撞器)——球体
-
Capsule Collider(胶囊碰撞器)——胶囊体
-
Mesh Collider(网格碰撞器)——从物体的网格创建一个碰撞器,不能与其他网格碰撞器相碰撞
-
Wheel Collider(轮碰撞器)——特殊的碰撞器,用于创建车或其他的交通工具的车轮
碰撞器属性:
-
Material:材质
-
Is Trigger:开启触发器
-
Radius:半径
-
Center:中心
-
Size:碰撞器的大小
-
Convex(网格碰撞器特有):如激活,该网格碰撞器将会和其他网格碰撞器碰撞,突起的网格碰撞器限制在255个三角形面内。
碰撞器类型:
-
Static Collider(静态碰撞器):只有碰撞器,没有刚体。基本保持静止或者轻微的移动,一般应用于环境模型,和刚体碰撞时不会移动
-
Rigidbody Collider(刚体碰撞器):同时附加了刚体和碰撞器。移动完全受脚本和物理引擎的影响。
-
Kinematic Rigidbody Collider(运动学刚体碰撞器):同时附加刚体和碰撞器,并且激活刚体组件的IsKinematic。移动必须通过修改其Transform组件,不受力的影响。能影响其他的刚体,和其他碰撞器碰撞时不会受影响,但是会触发碰撞函数。
-
Character Controllers(角色控制器):允许高速运动时立刻转身,可以执行碰撞检测保证角色可以沿墙滑动或者上下台阶。受重力影响,不受碰撞产生的力影响,可以由代码施加的力推动。不具有物理特性。如果想让角色控制器推开其他刚体或者对象,可以在对象附加的脚本中添加OnControllerColliderHit()函数,使得碰撞生效。
触发器:
在碰撞器的属性面版上勾选上IsTrigger便成为了触发器
两者区别:碰撞器根据物理引擎引发碰撞,产生碰撞的效果;触发器被物理引擎所忽略,没有碰撞效果
碰撞信息检测函数:
-
OnCollisionEnter(Collision collision)当开始产生碰撞时调用此函数
-
OnCollisionExit(Collision collision)当结束碰撞时调用此函数
-
OnCollisionStay(Collision collision)当持续接触时调用此函数
触发信息检测函数:
基本和碰撞信息检测函数类似
-
OnTriggerEnter(Collision collision)
-
OnTriggerExit(Collision collision)
-
OnTriggerStay(Collision collision)
碰撞信息和触发信息:
碰撞后有碰撞检测并有碰撞信息发出
Static Collider 静态碰撞器 | Rigidbody Collider 刚体碰撞器 | Kinematic Rigidbody Collider 运动学刚体碰撞器 | Static Trigger Collider 静态触发碰撞器 | Rigidbody Trigger Collider 刚体触发碰撞器 | Kinematic Rigidbody Trigger Collider 运动学刚体触发碰撞器 | |
---|---|---|---|---|---|---|
Static Collider 静态碰撞器 | Y | |||||
Rigidbody Collider 刚体碰撞器 | Y | Y | Y | |||
Kinematic Rigidbody Collider 运动学刚体碰撞器 | Y | |||||
Static Trigger Collider 静态触发碰撞器 | ||||||
Rigidbody Trigger Collider 刚体触发碰撞器 | ||||||
Kinematic Rigidbody Trigger Collider 运动学刚体触发碰撞器 |
碰撞后有触发信息
Static Collider 静态碰撞器 | Rigidbody Collider 刚体碰撞器 | Kinematic Rigidbody Collider 运动学刚体碰撞器 | Static Trigger Collider 静态触发碰撞器 | Rigidbody Trigger Collider 刚体触发碰撞器 | Kinematic Rigidbody Trigger Collider 运动学刚体触发碰撞器 | |
---|---|---|---|---|---|---|
Static Collider 静态碰撞器 | Y | Y | ||||
Rigidbody Collider 刚体碰撞器 | Y | Y | Y | |||
Kinematic Rigidbody Collider 运动学刚体碰撞器 | Y | Y | Y | |||
Static Trigger Collider 静态触发碰撞器 | Y | Y | Y | Y | ||
Rigidbody Trigger Collider 刚体触发碰撞器 | Y | Y | Y | Y | Y | Y |
Kinematic Rigidbody Trigger Collider 运动学刚体触发碰撞器 | Y | Y | Y | Y | Y | Y |