【Unityで学ぶC#プログラミング⑭】prefab・instantiate・destroy

プログラミング初心者向けのUnityで学ぶC#講座。

初心者にもわかりやすく、なるべく専門的な用語をなくして簡単に説明します。

今回は「prefab・instantiate・destroy」についてです。

この記事を読み終えると以下のことが分かるようになります。

prefab(プレハブ)とは

instantiate(インスタンシエイト)とは

destroy(デストロイ)とは

ゲームオブジェクトを管理する上で知っておきたい知識です。

今回紹介する事は、Unityゲーム開発のさまざまな場所で必要になります。

サクッと覚えて使いこなしましょう。

それではさっそく解説していきます。

prefab(プレハブ)とは

プレハブとは画像データやコライダーなどのコンポーネントを、ひとつのゲームオブジェクトにまとめたものです。
同じゲームオブジェクトを複製したいときに非常に役立ちます。

例えば、銃から発射される弾や、敵キャラなどをプレハブ化し、必要な時に簡単に生成することができます。

それでは早速ゲームオブジェクトをプレハブ化してみましょう。

まず、ヒエラルキーに下記のようなオブジェクトを用意します。

空の親オブジェクトの子には3Dのcubeオブジェクトが格納されています。
これをドラッグアンドドロップでプロジェクトの上に持ってくると、プレハブが作成されます。簡単ですね。

instantiate(インスタンシエイト)とは

instantiateとはオブジェクトを複製する関数です。

こちらの関数をつかってオブジェクトのクローンを作成することができます。

例えば、敵キャラに攻撃したときのヒットエフェクトを出現させたり、敵キャラを目の前に出現させたり、ゲームのさまざまな場面で使われます。

それでは実際にさきほとプレハブ化したオブジェクトをinstantiate関数を使って複製してみましょう。

まずこちらのスクリプトを用意します。
ゲームの開始したらStart関数でcubeオブジェクトをフィールドに作成します。第1引数にインスタンスするオブジェクト、第2引数に位置、第3引数に角度の情報を渡します。

何もないフィールドにcubeオブジェクトが作成されたのが確認できました。

destroy(デストロイ)とは

その名のとおり、オブジェクトを削除する関数です。
一回きりのヒットエフェクトや、倒された敵キャラなど、必要のなくなったオブジェクトは削除する必要があります。

それでは先ほどのinstantiateしたオブジェクトをdestroy関数で削除してみましょう。

一番最初に作成したcubeのプレハブに下記のスクリプトをアタッチします。

destroy関数の第1引数に削除するオブジェクト、第2引数に何秒後に削除するか数字を入れます。

第2引数は省略可能です。省略の場合は実行後すぐに削除されます。今回は3秒後に指定しました。

それでは実行し確認してみましょう。

ゲーム開始でオブジェクトが生成され、3秒後に削除されたのが確認できました。

今回の所は以上となります。

最後まで読んでいただきありがとうございました。

おすすめ記事【現役Unityエンジニアが厳選】Unityを学ぶのにおすすめのプログラミングスクール2選

Follow me!