Google

2011年10月31日月曜日

プレハブの弱点


今回もUnity3dのプレハブ話です。

これはあちこちで万能っぽく言われてますが、結構制限もあるので注意が必要です。
簡単に言うと、プレハブ本体とインスタンスでの違いが顕著です。
まず共通としてあるのは、プレハブ化した後に子をくっつけることができない事。
というと語弊があるので詳細を言うと、、、

プレハブ本体:
もともとProjectツリー側では実行時の親子は関係ないのでできません。
プレハブ化する前に親子付けしていた他のオブジェクトの関係は見えません。
ここで追加削除したコンポーネントは何事も無くインスタンスへ反映させることができます。

インスタンス側:
ヒエラルキー上で無理やり親子関係を変更すると、インスタンスがPrefabではなくなります。
プレハブでなくても別に構わないのですが、せっかくまとめて変更を適用できるといった利点が勿体ないですね。
Ctrl+Zも効きますが、確定してしまえばそのオブジェクトは二度と仲間には戻れません。
位置や回転なら特に問題はありません。(むしろできないと困る)
Component周りの変更も問題なく反映されます。

一番困ると思われるのはこんなケースじゃないでしょうか。
 ・木のプレハブを作成してマップに100本配置
 ・配置完了後に子オブジェクトとして木の実を追加したいと言われる。
 ・木の実はマテリアルでは実現できない仕様だった

無理やり元のプレハブへぐりっとやっても解決しないのでご注意を。
つまりは、コンポーネント周りでの変更ぐらいしかダイナミックな変更ができないってことです。
計画的に配置しないといけないってことですね。

0 件のコメント:

コメントを投稿