Unity3D:删除生成对象

Unity3D: delete spawn objects

我有一个 2d 游戏,其中有一个原始的敌人忍者。
我创建了生成脚本来克隆我原来的忍者。然后我将它放在我的主相机上,让我的忍者克隆在主相机视图中生成。我原来的忍者也有一个脚本,几秒钟后它就会删除。
我意识到删除我的原始忍者会导致我的克隆忍者不出现,但我想删除任何克隆的对象,这样我就不会结束 运行 我的项目。
有没有我可以在不触及原始忍者的情况下删除生成的克隆忍者。或者在不隐藏生成克隆的情况下将我原来的忍者隐藏在检查器中。
这是我的毁灭忍者代码:

private IEnumerator Killninja() {

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

    void Update () {
       StartCoroutine (Killninja ());
    }

如果你不想让你原来的忍者出现在场景中,就不要把它放在场景中。将它从场景拖到 Project Explorer 中。这将创建忍者的预制件。然后您可以从场景中删除忍者。

现在有一个 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。

您的 Ninja.cs 脚本将负责在时间结束后摧毁 Ninja:

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

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

确保脚本已分配给您的 Ninja 对象。