Unity Destroy GameObject实例化克隆

本文关键字:实例化 GameObject Destroy Unity | 更新日期: 2023-09-27 18:05:58

我想要实现的是销毁一个实例化的对象(这是一个粒子系统)。在做了一些研究之后,我发现实例化和销毁实例化对象的方法如下:

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);
        }
    }
}

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

Unity Destroy GameObject实例化克隆

问题

我发现了你的问题,你是Unity过度保护的受害者。你试图破坏克隆的转换组件,但你不允许这样做,所以Unity会忽略你。

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

所以你只需要这一行。你实例化了效果变换的gameObject组件。然后使用计时器摧毁它,我给它5f,否则效果会立即被摧毁。

这对我很有效。

空白DestroyProjectile (){破坏(实例化(destroyEffect、转换。