我想做的是让我的怪物在我的主字符与它碰撞时消失。所以,我把这个脚本附加到了我的怪物身上,但我无法让它工作。我成功地摧毁了怪物的刚体组件,但我似乎无法摧毁整个东西。
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);
}
}
}
问题可能是您试图销毁运行脚本的对象或其他随机对象。您通常从不销毁运行脚本的对象。此外,col包含与碰撞的对象。所以你可以这样做:
void OnCollisionEnter(Collision col)
{
if (!col.collider.name == "unitychan") return;
Destroy(col.gameObject);
}