Unity3D:删除繁殖对象

Unity3D:删除繁殖对象,unity3d,destroy,spawning,Unity3d,Destroy,Spawning,我有一个2d游戏,里面有一个原始的敌人忍者我创建了繁殖脚本来克隆我的原始忍者。然后我把它放在我的主摄像机上,让我的忍者克隆在主摄像机视图中繁殖。我原来的忍者也有一个脚本,几秒钟后它会删除我意识到删除我的原始忍者会导致我的克隆忍者不出现,但我想删除任何克隆对象,这样我就不会过度运行我的项目。有没有办法在不接触原始忍者的情况下删除繁殖克隆忍者。或者在inspector中隐藏我的原始忍者而不隐藏繁殖克隆

我有一个2d游戏,里面有一个原始的敌人忍者
我创建了繁殖脚本来克隆我的原始忍者。然后我把它放在我的主摄像机上,让我的忍者克隆在主摄像机视图中繁殖。我原来的忍者也有一个脚本,几秒钟后它会删除
我意识到删除我的原始忍者会导致我的克隆忍者不出现,但我想删除任何克隆对象,这样我就不会过度运行我的项目。
有没有办法在不接触原始忍者的情况下删除繁殖克隆忍者。或者在inspector中隐藏我的原始忍者而不隐藏繁殖克隆<这是我的毁灭忍者密码:

private IEnumerator Killninja() {

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

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

如果你不想让你原来的忍者出现在场景中,就不要让它出现在场景中。将其从场景拖动到项目资源管理器中。这将创建一个忍者的预制场。然后可以从场景中删除忍者

现在有一个ObjectSpawner.cs脚本,它的任务是生成一个预置。忍者,比如:

public class ObjectSpawner : MonoBehaviour
{
    public GameObject prefab;

    void Start()
    {
        GameObject.Instantiate(prefab, transform.position, transform.rotation);
    }
}
将ObjectSpawner指定给场景中的一个空游戏对象,并将先前创建的忍者预设指定给其
预设
字段。这将在游戏开始时在你的忍者兵对象的位置产生一个忍者

一旦忍者的时间到了,你的忍者脚本将负责摧毁忍者:

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

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

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

主要忍者是否必须实际出现在游戏中,或者只是一个预制角色?否则,您可以在脚本中包含公共bool,如
public bool isClone=true
,在原始检查程序中将其设置为false,并检入更新
if(isClone){startcroutine…}
并且您应该在
startcroutine
周围包含一个状态布尔,以便它只启动一次。目前,它每帧都会启动。它仍然会被第一个摧毁,但你只想要一个。谢谢你,它工作了,但我想每100秒繁殖一次以上的忍者,就像计时器一样,而不是让它直接在主摄像机的视野内繁殖,你知道该由谁来做吗?再次感谢您,这很有帮助。我的示例中已经显示了您所需要的一切。只需将第二个脚本的一些代码与第一个脚本的代码混合在一起,您就得到了所需的。如果您将生成大量不同的对象,是否仍然建议使用此方法?手动维护inspector中的所有拖放引用是否会引起麻烦?如果希望生成多个对象,请不要使用多个生成脚本,而是让一个脚本简单地生成多个对象。