ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

Prefabのアタッチが外れる。

以前の「ObjectPoolの勉強」で実験したオブジェクトプールを実装してみた。

最初は自機に実装してみたが、ボスの弾のプールも作るにあたって、プールをあちこちに作るより、いっそ、弾管理用のBullet Managerを作成して、プールもまとめてみたくなった。

 

Bullet Managerを空オブジェクトで作成し、弾のPrefabにBullet Managerをアタッチしようとするが、これがどうしてもできなかった。

ヒエラルキーに生成した後のオブジェクトにはアタッチできるが、それをPrefab化した時点でBullet Managerがアタッチから外れてしまう。

 

調べてみると、Prefabとヒエラルキー上のオブジェクトは存在するシーンが異なるため、関連づけが切れてしまうらしい。

・・・これは困った。

Bullet ManagerをPrefab化すればアタッチしたまま弾をPrefab化できるが、それだとアタッチされているBullet ManagerはPrefabフォルダ上のもので、ヒエラルキーに存在するBullet Managerとは別物で、正常に作動しない。

 

色々と試してみたが、とりあえず、弾をPrefab化せず、ヒエラルキー上に生成して、非activeで待機させておき、

そのオブジェクトが必要なときは、その待機オブジェクトをコピーして生成する方法でならうまくいった。

 

うまくいったから、いいんだけど、どうにも腑に落ちない。

さらに調べていると、次の様な記事が見つかった。

i-school.memo.wiki

 

明日は、この記事にある「1.<メソッドの引数を活用する> 」を実験してみることにしよう。