unityでプレハブの生成及びその関数呼び出し

AndEngine入れてやってみようとしたら意味不明なエラーでできぬ
諸々再インストール時間かかるし別のことやってるしかねえよ~




備忘録&同じとこで躓いてる人の助けになればこれ幸い
unityのプレハブ生成とそいつの関数呼び出し


プレハブ生成自体は調べればすぐ出てくるし
その関数の呼び出し方もなんとなーしには出てくるけど正直あいまいな感じになってたので
手軽にまとめ


例えば
・4つのオブジェクトを生成したい
・生成するオブジェクトは不定(プレイヤーが選択する)であるため、プレハブの固定は出来ない
・生成したオブジェクトに生成された番号を与えたい
という状況があるとする。
コントローラー4つ使うなら各オブジェクトに自身の主を定めておきたいし
生成時に何かしら働きかけて数値を入れたい。

的な状況だとして、色々コードをぶち込んでみる。


各4つのプレハブは
obj_A obj_B...みたいにもう作ってあるとして

var pre_A:GameObject;
var pre_B:GameObject;
var pre_C:GameObject;
var pre_D:GameObject;
と記述しておく。

ほいでもう一つ
var obj:GameObject;
と置いとく。


awakeとかstart関数に入ったらプレハブを生成。

Instantiate(pre_A, new Vector3(0, 0, 0), Quaternion.identity);

でとりあえず生成は出来る。
位置やら向きやらは数値をいじる。



これだと生成しておしまいなので、

obj = Instantiate(pre_A, new Vector3(0, 0, 0), Quaternion.identity);

にする。


これでobjに生成したプレハブのデータが渡されたので、
中身を弄ろうと思えば弄ることができる。


ただ、プログラム側はobjだけだとこいつにどういうスクリプトが入ってて
どういう変数、関数があるのか分からないので、それも渡してあげる。

obj.GetComponent(スクリプト名).func(0);

これで、objつまり生成したプレハブに備わってる関数を好きに呼び出せる。
まぁこれで数値弄るなりなんか実行するなり。おわり


あ、あとこのスクリプトを実装したオブジェクトにちゃんと作ったプレハブを渡すこと。


panama.png

コメントの投稿

Secret

プロフィール

いすぃ

Author:いすぃ
ゲームを作ってたりゲームしてたり何もしてなかったりしてます

お仕事あれば請け負います。
ゲーム作ってみたい!とか初歩からプログラムやってみたい!って人もご一報ください。

ゲーム面白かったよ!
今後も応援するよ!などなどの意味で下記から心ばかりの支援をしていただけると本当に助かります。
Enty


twitter
ニコニココミュ
pixiv

最新記事
カテゴリ
最新コメント
最新トラックバック
月別アーカイブ
kaunta-
検索フォーム
リンク
スポンサードリンク