当游戏物体与主角碰撞时,如何破坏整个预制件?

时间:2015-12-18 07:31:48

标签: c# unity3d

我想要做的是让我的怪物在我的主角与它碰撞时消失。所以,我把这个脚本附加到我的怪物身上,但我无法让它发挥作用。我成功地摧毁了怪物的RigidBody组件,但我似乎无法破坏整个事物。

using UnityEngine;
using System.Collections;

public class Dying: MonoBehaviour {
private Rigidbody rbody;
public GameObject prefab;


void Start () {
    rbody = GetComponent<Rigidbody>();
GameObject obj = Instantiate(prefab);

}


void Update () {


} 
void OnCollisionEnter(Collision col)
{ 
    print(col.collider.name);
    if(col.collider.name =="unitychan")
    {
         Destroy(prefab.gameObject);

    }
 }
}

1 个答案:

答案 0 :(得分:2)

问题可能在于您试图销毁运行脚本的对象或其他随机对象。您通常永远不会销毁运行脚本的对象。此外,col包含与之冲突的对象。所以你可以这样做:

void OnCollisionEnter(Collision col)
{
    if (!col.collider.name == "unitychan") return;

    Destroy(col.gameObject);
}