0

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

private IEnumerator Killninja() {

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

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

1 回答 1

0

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

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

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 对象。

于 2016-03-26T20:03:05.990 回答