ChuanXin 发表于 2022-10-8 10:26

unity碰撞触发物体检测销毁

触发检测和碰撞检测都可以检测到两个物体是否发生接触,但是有一些区别,比如碰撞发生时,两个物体会模拟物理效果,会弹开等等,但触发发生时,运动的物体会直接穿过对方。
触发检测的函数
    // 开始接触
      void OnTriggerEnter(Collider collider) {
      
   }

   // 接触结束
   void OnTriggerExit(Collider collider) {
         
   }

   // 接触持续中
   void OnTriggerStay(Collider collider) {
      
   }碰撞检测的函数
   // 碰撞开始
   void OnCollisionEnter(Collision collision) {
      
   }

   // 碰撞结束
   void OnCollisionExit(Collision collision) {

   }

   // 碰撞持续中
   void OnCollisionStay(Collision collision) {

   }下方案例代码是挂在主体上,当遇到tag为“des"的物体即可销毁,在被碰撞物体collider中的Is Trigger触发器打开如下图


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class peng : MonoBehaviour
{
    // Start is called before the first frame update
    private void OnTriggerEnter(Collider other)
    {
      Debug.Log(other.gameObject.name);
      if(other.tag == "des")
      {
            Destroy(other.gameObject);
      }
    }
}
页: [1]
查看完整版本: unity碰撞触发物体检测销毁