【Unity 3D】碰撞检测

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);
	}

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










 

 

posted @ 2013-07-24 20:26  爱生活,爱编程  阅读(2026)  评论(0编辑  收藏  举报