Version: 2019.3
タイムとフレームレートの管理
コルーチン

ゲームオブジェクトの作成および削除

シーン上でオブジェクトを一定数維持することもありますが、キャラクター、アイテム、および他のオブジェクトをゲーム中に作成/削除することは頻繁にあります。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);

このようにした場合は呼び出し元のスクリプトコンポーネントが削除され、スクリプトがアタッチされていたゲームオブジェクトは削除されません。

タイムとフレームレートの管理
コルーチン
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961