Unity3D_碰撞检测

来源:互联网 发布:多益网络账号密码找回 编辑:程序博客网 时间:2024/06/16 07:27

欢迎大家关注我的日志,今天介绍下碰撞的检测:


一、碰撞检测

unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这两种方式,我们必须理解以下概念:


1.碰撞器是一群组件,它包含了很多种类,比如:Box ColliderCapsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。


2.所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。


3.给主角添加刚体(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"); 


如果大家还有什么困难的话可以关注我的日志:

http://unity.gopedu.com/home.php?mod=space&do=blog&view=me

还可以关注我们的狗刨网:

http://www.gopedu.com/

0 0