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) { // 碰撞結束的邏輯處理 } }
###########################