Unity 物理引擎

https://www.bilibili.com/video/BV12s411g7gU?p=178&spm_id_from=pageDriver
1.两个物体都必须有 碰撞组件
2.运动的物体必须带有刚体组价
满足上面两个条件才会发生碰撞!
碰撞会有碰撞效果
产生碰撞时触发的三个方法:
void OnCollisionEnter(Collision other);//开始接触第一帧
void OnCollisionStay(Collision other);//接触的每一帧
void OnCollisionExit(Collision other);//接触的最后一针

触发器 :有碰撞器 并且 Is Trigger = true ;
触发条件:
1.两个物体有碰撞器
2.两个物体其中一个带有刚体
3.两个物体其中一个勾选了Is Trigger
两个物体进入触发区域时触发的三个方法:
void OnTriggerEnter(Collider other);//触发第一帧
void OnTriggerStay(Collider other);//触发过程的每一帧
void OnTriggerExit(Collider other);//触发的最后一帧

如果运动物体速度太快,碰撞和触发都无法检测不到! 可以通过射线检测!
参数1:发射点
参数2:发射方向
参数3:发射线撞击的目标信息(输出参数)
参数4:射线检测距离
参数5:检测哪些层
public LayerMask mask;
void Start()
{
RaycastHit hit = new RaycastHit();
Physics.Raycast(Vector3.zero, Vector3.forward, out hit, 200, mask);
}

你可能感兴趣的:(Unity 物理引擎)