#概要
FBXデータで構成されたPrefabがあったとして、
FBXデータを更新、リインポートした場合にPrefabを再作成すべきなのか?
その判断基準を調べました。
#再作成が必要なケース
##オブジェクト数が増減した時
FBX内部のオブジェクトが増えたり減ったりした場合、
FBXをリインポートしただけではPrefab側には反映されません。
例えば下記のようなケースで再作成が必要。
- 複数のメッシュをマージして1オブジェクトに修正した
- メッシュを分割して2オブジェクトに修正した
##オブジェクトのTransformが変わった時
FBX内部のオブジェクトTransfromが変わった場合、
Prefab側のTransformへは反映されません。
例えば下記のようなケースで再作成が必要。
- オブジェクトの位置を動かした
##アサインしているマテリアルが変わった時
FBXをリインポートした結果、これまでとは別のマテリアルを参照することになった場合、
Prefab側のRendererはリインポート前のマテリアル参照状態のままです。
例えば下記のようなケースで再作成が必要。
- アサインしているマテリアル名を変更した
- メッシュに別名のマテリアルをアサインした
##BoxCollider用オブジェクトの形状を修正した時
もしFBXデータ内のメッシュからBoxColliderを生成している場合、
対象メッシュ形状を修正した場合もPrefabの再作成が必要な可能性があります。
BoxColliderはMeshColliderと違い、MeshFilterでメッシュを参照していないため。
#再作成が不要なケース
##既存メッシュの頂点編集やUV編集などを行った時
Prefabに格納されたGameObjectは直接メッシュを内包しておらず、
GameObjectに付与されたMeshFilterコンポーネントでメッシュを参照しています。
その為、メッシュへの修正はリインポート時点でPrefabに反映されます。
#Prefab再作成の影響
意識しておくべき再作成の影響
- ライトマップが外れる可能性がある(再作成のやり方によってオブジェクトIDが変わるため)
- ライトマップのリビルドが必要な場合がある(メッシュ形状変化などは当然必要9