Unity3D:删除生成的对象

时间:2016-03-26 17:44:54

标签: unity3d destroy spawning

我有一个2d游戏,其中有一个原始的敌人忍者。我创建了产卵脚本来克隆我原来的忍者。然后我将它放在我的主相机上,使我的忍者克隆在主摄像机视图中产生。我的原始忍者也有一个脚本,几秒后它将被删除。我意识到删除原来的忍者导致我的克隆忍者没有出现,但是我想删除任何克隆的对象,这样我就不会过度运行我的项目了。
有没有办法可以删除产卵克隆忍者没有触及原始的忍者。或者在检查器中隐藏我的原始忍者,而不隐藏产生的克隆。
这是我的破坏忍者代码:

private var barCode: BarCode? = null

override fun getBarCode(): BarCode? = barCode
fun setBarCode(barCode: BarCode) {
    this.barCode = barCode
}

1 个答案:

答案 0 :(得分:0)

如果您不希望原始忍者在场景中,请不要在场景中使用它。将其从场景拖动到Project Explorer中。这将创建一个Ninja的预制件。然后,您可以从场景中删除Ninja。

现在有一个ObjectSpawner.cs脚本,其任务是生成预制件。忍者,如:

public class ObjectSpawner : MonoBehaviour
{
    public GameObject prefab;

    void Start()
    {
        GameObject.Instantiate(prefab, transform.position, transform.rotation);
    }
}

将ObjectSpawner分配给场景中的空GameObject,并将之前创建的Ninja Prefab分配给其prefab字段。一旦游戏开始,这将在你的NinjaSpawner对象的位置产生一个忍者。

你的Ninja.cs脚本将负责在忍者时间结束时摧毁忍者:

public class Ninja : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(DestroyDelayed());
    }

    IEnumerator DestroyDelayed()
    {
        yield return new WaitForSeconds(4f);
        Destroy(gameObject);
    }
}

确保将脚本分配给Ninja对象。