unity碰撞检测的几种函数


一、

OnCollisionEnter(Collision collision):这个函数用于检测两个物体之间的碰撞事件,当两个物体发生碰撞时被调用。其中,参数collision包含了碰撞的详细信息,例如碰撞点、碰撞法线等等。


二、

OnCollisionStay(Collision collision):这个函数用于检测两个物体之间的持续碰撞事件,当两个物体持续发生碰撞时被调用。其中,参数collision包含了碰撞的详细信息,例如碰撞点、碰撞法线等等。


三、

OnCollisionStay(Collision collision):这个函数用于检测两个物体之间的持续碰撞事件,当两个物体持续发生碰撞时被调用。其中,参数collision包含了碰撞的详细信息,例如碰撞点、碰撞法线等等。


四、

OnTriggerStay(Collider other):这个函数用于检测一个物体是否持续停留在另一个物体的触发器范围内,当一个物体持续停留在另一个物体的触发器内时被调用。其中,参数other表示停留在触发器内的物体。

五、

OnCollisionExit(Collision collision):这个函数用于检测两个物体之间的碰撞事件结束,当两个物体之间的碰撞结束时被调用。其中,参数collision包含了碰撞的详细信息,例如碰撞点、碰撞法线等等。

六、

OnTriggerExit(Collider other):这个函数用于检测一个物体是否离开了另一个物体的触发器范围内,当一个物体离开另一个物体的触发器时被调用。其中,参数other表示离开触发器的物体。


七、 代码

using UnityEngine;

public class CollisionExample : MonoBehaviour
{
    
    
    // 碰撞事件,当两个物体发生碰撞时被调用
    void OnCollisionEnter(Collision collision)
    {
    
    
        Debug.Log("碰撞事件:" + collision.gameObject.name);
    }

    // 触发器事件,当一个物体进入另一个物体的触发器时被调用
    void OnTriggerEnter(Collider other)
    {
    
    
        Debug.Log("进入触发器:" + other.gameObject.name);
    }

    // 碰撞持续事件,当两个物体持续发生碰撞时被调用
    void OnCollisionStay(Collision collision)
    {
    
    
        Debug.Log("碰撞持续事件:" + collision.gameObject.name);
    }

    // 触发器持续事件,当一个物体持续停留在另一个物体的触发器内时被调用
    void OnTriggerStay(Collider other)
    {
    
    
        Debug.Log("触发器持续事件:" + other.gameObject.name);
    }

    // 碰撞结束事件,当两个物体之间的碰撞结束时被调用
    void OnCollisionExit(Collision collision)
    {
    
    
        Debug.Log("碰撞结束事件:" + collision.gameObject.name);
    }

    // 触发器结束事件,当一个物体离开另一个物体的触发器时被调用
    void OnTriggerExit(Collider other)
    {
    
    
        Debug.Log("触发器结束事件:" + other.gameObject.name);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_20179331/article/details/129766775