最も簡単な方法であるプレハブ指定の方法です。
といいながら、以前書いたように、プレハブのクラスは存在しません。
なので、ここでもまたUnity特有の手法が存在します。
今まで何度も出ましたが、GUI上でドラッグ&ドロップですね。
以下が今回のサンプルソースコード。
using UnityEngine;
public class SampleScript : MonoBehaviour {
public GameObject prefab;
public void Start() {
GameObject aaa =
(GameObject)Instantiate(
prefab,
transform.position,
transform.rotation);
}
}
メンバにprefabという名前のGameObjectがあります。
publicにすると紐付けしたGameObjectをクリックした際、インスペクタにメンバが表示されるという点は以前書きました。
そしてドラッグ&ドロップで実行前にインスタンスを指定という方法も書きました。
これをそのままここに応用することができます。
では具体的な手順。
まずは上記コードをC#として作成し保存。
適当な元プレハブを準備しましょう。今回は分かりやすくCubeを作ります。
メニューから「GameObject」→「Create Other」→「Cube」で生成。
そのままProjectビューにドラッグしてプレハブ化。
空色キューブ型アイコンがプレハブの印です。
空っぽのGameObjectを作成してこのSampleScriptをドラッグ&ドロップで紐付け。
インスペクタにprefabというメンバ変数が出るので、Cubeをドラッグ&ドロップ。
赤丸の部分を左上から右下に入れるだけです。
何もない状態から生成される事を分かりやすくするために、シーン上にあるCudeは削除しておきましょう。(プレハブではなく、ヒエラルキー上のCubeです)
これで準備完了です。
実行するとGameObjectと同じ位置にCubeが生成されます。
![]() |
| ビフォー |
![]() |
アフター |
要は一旦ゲームオブジェクトとして確定したプレハブは、この方式でいつでも実体化できるということです。








0 コメント:
コメントを投稿