我试图实现的是破坏实例化对象(粒子系统)的东西。在做了一些研究之后,我发现实例化和销毁实例化对象的方法是:
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);
}
}
}
但似乎没有删除它,这个对象继承到一个被销毁的对象。但是在这个毁灭之后。它似乎创建了另一个名为"粒子系统(克隆)"没有父母。如何删除它?
答案 0 :(得分:3)
我发现了你的问题,你是Unity过度保护的受害者。您正在尝试销毁克隆的转换组件,但您不允许这样做,因此Unity会忽略您。
void OnTriggerEnter(Collider info)
{
if(info.name == "Ball")
Destroy(Instantiate(coinEffect.gameObject, transform.position, transform.rotation), 5f);
}
所以你只需要这一行。您实例化效果gameObject的transform组件。然后Destroy使用计时器,我给它5f
,否则效果会立即被破坏。
答案 1 :(得分:0)
这对我有用。
void DestroyProjectile() { 销毁(实例化(销毁效果,transform.position,Quaternion.identity),3f);