Unity-如何通过碰撞摧毁我的玩家?

时间:2020-02-11 19:50:55

标签: c# unity3d collision-detection destroy gameobject

嗨,我只是简单地尝试破坏我的物体,使其接触到红色立方体:) 我在这里https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html使用了代码,但无法正常工作。有想法吗?

pla

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

public class playerdeath : MonoBehaviour
{

         void OnCollisionEnter(Collision collision)
         {
             foreach (ContactPoint contact in collision.contacts)
             {
                 Debug.DrawRay(contact.point, contact.normal, Color.white);
                 Debug.Log("collision detected");
             }
             if(collision.relativeVelocity.magnitude > 2)
             {

                 Destroy(gameObject);
             }
         }
}

2 个答案:

答案 0 :(得分:2)

您可以使用此:-

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

public class playerdeath : MonoBehaviour
{

         void OnCollisionEnter(Collision collision)
         {
             foreach (ContactPoint contact in collision.contacts)
             {
                 Debug.DrawRay(contact.point, contact.normal, Color.white);
                 Debug.Log("collision detected");
             }
             if(collision.relativeVelocity.magnitude > 2)
             {

                 Destroy(gameObject);
             }

             if(collision.gameObject.tag=="deathcube")
             {
               Destroy(gameObject); 
             } 
         }
}

注意:在我在屏幕截图中给出的Unity中添加标签。

enter image description here

答案 1 :(得分:0)

 void OnTriggerEnter(Collider other)
 {
    if(other.gameObject.tag=="deathcube")
     Destroy(gameObject);  
 }

这很好用:),但我听说它的性能比OnCollisionEnter还要重。