Google

2011年11月8日火曜日

PrefabGUI指定で生成

前回の続き。
最も簡単な方法であるプレハブ指定の方法です。

といいながら、以前書いたように、プレハブのクラスは存在しません。
なので、ここでもまた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 件のコメント:

コメントを投稿