创建和销毁游戏对象

某些游戏在场景中维护恒定数量的对象,但是在游戏过程中,创建和移除人物、物品以及其他对象也非常普遍。在 Unity 中,一个游戏对象可以通过 Instantiate 函数创建一个已有对象的新副本。

public GameObject enemy;

void Start() {
    for (int i = 0; i < 5; i++) {
        Instantiate(enemy);
    }
}

需要注意的是,被复制的原始对象不一定必须是场景中的对象。比较常见的是,将一个预制对象拖动到编辑器项目视图的一个公共变量上。而且,初始化一个游戏对象将复制原始对象上的所有组件。

还有一个 Destroy 函数用于在桢更新完成之后或者一段可选的短暂延迟之后销毁对象:

void OnCollisionEnter(Collision otherObj) {
    if (otherObj.gameObject.tag == "Missile") {
        Destroy(gameObject,.5f);
    }
}

请注意,Destroy 函数可以单独销毁某些组件而不影响游戏对象本身。下面是一个常见的错误:

Destroy(this);

上面这行代码实际上只是销毁被调用的脚本组件,而不是绑定了该脚本组件的游戏对象。

results matching ""

    No results matching ""