- 10
- 0
- 约1.44千字
- 约 3页
- 2017-06-07 发布于重庆
- 举报
Unity3D碰撞检测射线
Unity 3D——碰撞检测、射线
??在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这两种方式,我们必须理解以下概念:
(一)碰撞器是一群组件,它包含了很多种类,比如:
? ? ? ? ? ?Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
(二)所谓触发器,只需要在检视面板中的碰撞器组件中
? ? ? ? ? ?勾选IsTrigger属性选择框。
(三)给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。
触发信息检测
1、当进入触发器
? ? ? MonoBehaviour.OnTriggerEnter( Collider other )
2、当退出触发器
? ? ? MonoBehaviour.OnTriggerExit( Collider other )
3、当逗留触发器
?? ? ?MonoBehaviour.OnTriggerStay( Collider other )
? ? ?// 触发接触的那一帧被调用 ?
? ? void OnTriggerEnter(Collider other)?
{ ?
? ? ? ? Debug.Log(enter); ?
? ? ? ? Debug.Log(other.gameObject.name); ?
? ? } ?
??
? ? //触发接触的每帧都被调用 ?
? ? void OnTriggerStay(Collider other)?
{ ?
? ? ? ? Debug.Log(Stay); ?
? ? } ?
??
? ? // 触发结束被调用 ?
? ? void OnTriggerExit(Collider other)?
{ ?
? ? ? ? Debug.Log(Exit); ?
? ? } ?
碰撞信息检测
1、当进入碰撞器
? ? ? MonoBehaviour.OnCollisionEnter( Collision collisionInfo )?
2、当退出碰撞器
? ? ? MonoBehaviour.OnCollisionExit( Collision collisionInfo )?
3、当逗留碰撞器
? ? ?MonoBehaviour.OnCollisionStay( Collision collisionInfo ) ?
// 碰撞接触的那一帧被调用 ?
? ? void OnCollisionEnter(Collision collision)
{ ?
? ? ? ? Debug.Log(enter); ?
? ? ? ? Debug.Log(collision.gameObject.name); ?
} ?
??
? ? // 碰撞接触的每帧都被调用 ?
? ? void OnCollisionStay(Collision collision)?
{ ?
? ? ? ? Debug.Log(Stay); ?
} ?
??
? ? // 碰撞结束被调用 ?
? ? void OnCollisionExit(Collision collision)?
{ ?
? ? ? ? Debug.Log(Exit); ?
} ?
想要了解更多请到狗刨学习网
原创力文档

文档评论(0)