首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity3D:删除派生对象

Unity3D:删除派生对象
EN

Stack Overflow用户
提问于 2016-03-26 17:44:54
回答 1查看 2.6K关注 0票数 0

我有一个2d游戏,其中有一个原始的敌人忍者。

我创造了繁殖脚本来克隆我的原忍者。然后我把它放在我的主相机上,让我的忍者克隆人在主摄像机的视野内产卵。我的原忍者也有一个脚本,几秒钟后,它将删除。

我意识到删除我原来的忍者是因为我的克隆忍者没有出现,但我想删除任何克隆对象,这样我就不会运行我的项目。

有没有办法,我可以删除产卵克隆忍者,而不触及原忍者。或者把我原来的忍者藏在巡官那里而不隐藏那些克隆人。

这是我的毁灭忍者密码:

代码语言:javascript
复制
private IEnumerator Killninja() {

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

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-26 20:03:05

如果你不想你的原忍者在现场,不要有它在现场。将其从场景中拖到中。这将创造一个预制件的忍者。然后你可以从现场删除忍者。

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

代码语言:javascript
复制
public class ObjectSpawner : MonoBehaviour
{
    public GameObject prefab;

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

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

一旦忍者的时间到了,您的Ninja.cs脚本将负责销毁它:

代码语言:javascript
复制
public class Ninja : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(DestroyDelayed());
    }

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36238649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档