Unity3dでGameObjectを生成する方法です。
まずはさらっと概要をば。
実行中に生成するということは、それまで画面上になかったものをインスタンスとして表示させるということです。
開発側からすると、「どれ」をシーンに出すのか?という事を認識する必要があります。
普通はクラスをnewしてインスタンス化しますが、UnityではプレハブやGameObjectを元にします。
インスタンス化のメソッドがこちら。
static function Instantiate
(original : Object,
position : Vector3,
rotation : Quaternion) : Object
これはObjectクラスのクラスメソッドなので、MonoBehaviour派生クラスならいつでも呼び出せます。
クラスメソッドはC++で言えばstaticメンバ関数ですね。
さてこの関数、呼び出しているクラスをコピーするとかではありません。
第1引数にoriginalとあるように、元を入れるとそのコピーをインスタンス化するという機能です。
つまり、既になんかしらの形で存在しているObject又はその派生クラスであるGameObject等を準備しなければなりません。
何が対象になるのかというと、ざっとこんな感じ。
・Project内にあるプレハブ
・シーンに既にあるGameObject
・Project内にあるFBX等のインポートデータ
・アセットバンドルファイル
ゲームを作るには十分なバリエーションではないかと。
FBX等のインポートデータも、取り込んだ時点でプレハブになるので、同じという事になります。
一番簡単なのはプレハブですが、それはまた次回。

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