Unity Destroy GameObject实例化了clone

时间:2014-05-31 15:52:58

标签: c# unity3d

我试图实现的是破坏实例化对象(粒子系统)的东西。在做了一些研究之后,我发现实例化和销毁实例化对象的方法是:

public class CoinCollider : MonoBehaviour
{   
    public Transform coinEffect;

    void OnTriggerEnter(Collider info)
    {
        if (info.name == "Ball")
        {
            GameObject effect = GameObject.Instantiate(coinEffect, transform.position, transform.rotation) as GameObject;

            Destroy(effect);
            Destroy(gameObject);
        }
    }
}

但似乎没有删除它,这个对象继承到一个被销毁的对象。但是在这个毁灭之后。它似乎创建了另一个名为"粒子系统(克隆)"没有父母。如何删除它?

2 个答案:

答案 0 :(得分:3)

问题

我发现了你的问题,你是Unity过度保护的受害者。您正在尝试销毁克隆的转换组件,但您不允许这样做,因此Unity会忽略您。

解决方案

void OnTriggerEnter(Collider info)
{
   if(info.name == "Ball")
      Destroy(Instantiate(coinEffect.gameObject, transform.position, transform.rotation), 5f);
}

所以你只需要这一行。您实例化效果gameObjecttransform组件。然后Destroy使用计时器,我给它5f,否则效果会立即被破坏。

答案 1 :(得分:0)

这对我有用。

void DestroyProjectile() { 销毁(实例化(销毁效果,transform.position,Quaternion.identity),3f);