unity3d碰撞

unity3d碰撞

 

Unity3D提供了多个碰撞事件函数,用于处理不同类型的碰撞情况。常用的碰撞事件函数包括:

OnCollisionEnter:当两个物体开始碰撞时触发。这是碰撞的起始点,可以用于执行碰撞开始时的逻辑,如播放碰撞音效、改变游戏状态等。

OnCollisionStay:在两个物体持续碰撞的过程中不断触发。这个函数可以在物体持续碰撞时执行逻辑,如持续伤害、摩擦力效果等。

OnCollisionExit:当两个物体结束碰撞时触发。这个函数可以用于执行碰撞结束时的逻辑,如停止伤害、重置状态等。

 

using UnityEngine;

public class CollisionExample : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {
        Debug.Log("Collision with " + collision.gameObject.name);
        
        // 可以根据碰撞物体的Tag或Layer来处理不同的逻辑
        if (collision.gameObject.CompareTag("Enemy"))
        {
            // 处理与敌人的碰撞
        }
        
        // 遍历碰撞点
        foreach (ContactPoint contact in collision.contacts)
        {
            Debug.Log("Collision Point: " + contact.point);
            Debug.Log("Collision Normal: " + contact.normal);
        }
    }

    void OnCollisionStay(Collision collision)
    {
        // 持续碰撞的逻辑处理
    }

    void OnCollisionExit(Collision collision)
    {
        // 碰撞结束的逻辑处理
    }
}

 

 

###########################

posted @ 2024-07-23 19:38  西北逍遥  阅读(29)  评论(0编辑  收藏  举报