您的位置:首页 > 移动开发 > Unity3D

【Unity 3D 游戏引擎】碰撞检测

2013-07-23 18:03 211 查看
unity3d中,能检测碰撞发生的方式有两种,

碰撞器
触发器

概念:
    (一)碰撞器是一群组件,它包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
    (二)所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。
    (三)在Unity3d中,主要有以下接口函数来处理这两种碰撞检测:

触发信息检测:
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器
2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

(来自网络)
-------------分割线-------------

我们来做一个东西,试一下

在场景中添加2个物体,都设置刚体,取消重力,并且锁定xyz



给其中一个绑定脚本,重写OnCollisionEnter()
void OnTriggerEnter(Collider collider)
{
Debug.Log("OnTriggerEnter = " + collider.gameObject.name);
}


运行场景,然后直接在场景窗口中拖动 物体,碰撞另一个,在控制台就会看到输出了。

转载请注明出处:

博客:http://blog.csdn.net/Vestigge
作者:Pomme
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: