Unity3D刚体碰撞事件监测与处理(十二)

本节要点

#1.碰撞事件简介
1.何为碰撞事件?
当一个用刚体控制的物体与另外一个物体碰撞时,就会触发碰撞事件。注:目标物体必须带有 Collider 组件。
碰撞 Collision
比如,一款射击类游戏,我们发射出了子弹,子弹是一个由刚体控制运动的物体,子弹射中了敌人,我们如何监测到这个碰撞??

#2.碰撞事件监测方法

1.OnCollisionEnter(Collision)

当碰撞开始时调用,只会调用该方法一次。

2.OnCollisionExit(Collision)

当碰撞结束时调用,只会调用该方法一次。

3.OnCollisionStay(Collision)

当碰撞进行中时,会持续调用该方法。

4.Collision 参数

碰撞,一个类。作用:用于传递碰撞信息。

Collision.gameObject 属性,与当前物体碰撞的物体的引用。

gameObject.name 属性,当前物体的名字。

场景视图

Unity3D刚体碰撞事件监测与处理(十二)_第1张图片

关键代码

public class CollisionCube : MonoBehaviour {

    //谁碰撞了我??

    //碰撞发生时候执行一次
    void OnCollisionEnter(Collision coll)
    {

        //Debug.Log("Enter"+coll.gameObject.name);
        if (coll.gameObject.name != "Ground")
        {
            Debug.Log("Enter" + coll.gameObject.name);
        }

    }


    //碰撞离开后发生一次
    void OnCollisionExit(Collision coll)
    {

        if (coll.gameObject.name != "Ground")
        {
            Debug.Log("Exit" + coll.gameObject.name);
        }

    }


    //碰撞时持续发生
    void OnCollisionStay(Collision coll)
    {

        if (coll.gameObject.name != "Ground")
        {
            Debug.Log("Stay" + coll.gameObject.name);
        }

    }






}

小结

Unity3D刚体碰撞事件监测与处理(十二)_第2张图片
Unity API.png

你可能感兴趣的:(Unity3D刚体碰撞事件监测与处理(十二))