LIGHT11スマートフォン用の表示で見るLIGHT112018-12-17【Unity】Unityに既にインポートしてあるFBXを上書きするときの挙動と注意点(Unity2018.2以前)UnityUnityにすでにインポートしてあるFBXを上書きした時に、FBXのインスタンスやそれから作られたPrefabがどこまで更新されるのか、簡単に確認してみました。Unity2018.3以降はこちらUnity2018.3のPrefabのワークフロー変更に伴い挙動が変わったので次の記事にまとめました。light11.hatenadiary.com準備まずは準備です。Blenderで適当にこんな感じのモデルを作ってFBXで書き出します。これをUnityにインポートします。インポートしたFBXをHierarchyにドラッグすることでインスタンス化されGameObjectが作られます。このGameObjectをProjectビューにドラッグすることでPrefab化されます。今回はFBXをHierarchyにドラッグしただけの状態(Prefab化してない状態)とPrefab化した状態のものをそれぞれSceneに置いた状態でFBXを色々と更新してみます。ちなみにFBXの更新は、GUIDが変わらないようにExplorerから上書きします。頂点を変形するまず頂点を変形してみます。Blenderで一番下のオブジェクトだけ変形しエクスポートし、FBXを上書きします。結果、Prefab化されているものにもされていないものにも変形が反映されました。Prefab化されていても、参照しているメッシュは元のFBXのものなので予想通りの挙動です。オブジェクトをリネームする次にオブジェクトをリネームします。Blenderでリネームしてエクスポートし、FBXを上書きします。すると、インポート後のメッシュもリネームされます。Prefab化してないインスタンスの場合、メッシュが正常にリネームされました。Prefab化しているインスタンスはメッシュの参照が外れてしまいました。これらの挙動を見ると、どうやらリネームされたというより新しいメッシュが作られたと考えるのが正しそうです。名前が同じで異なるオブジェクトに差し替えるそれでは名前は変えずにオブジェクトを変えたらどうなるでしょうか。Blenderで一番下のオブジェクトを削除し、同じ名前の新しいオブジェクトに差し替えます。これをUnityにインポートしたところ、Prefab化していないもの、しているものどちらも更新されました。名前が変わらなければメッシュが上書きされるため、参照は外れないようです。オブジェクトを移動する次にオブジェクトの位置を変えてみます。これを更新すると、Prefab化してない場合は反映されました。Prefab化してると反映されませんでした。これはまあTransformの情報はPrefabにシリアライズされているということで予想通りではあります。オブジェクトを追加する続いて新しいオブジェクトを追加して上書きしてみます。Prefab化してない場合は正常に反映されます。Prefab化している場合は反映されませんでした。Prefabが追加されたメッシュの情報を保持していないため反映されなかったようです。マテリアルを更新する最後にマテリアルを更新してみます。Materialsにした状態で更新してみます。マテリアルの更新が反映されました。Materialsにした状態で更新してみます。こちらは更新前と変わりませんでした。最初のインポート時に作られたマテリアルが使われているようです。»プロフィールUnityエンジニア。グラフィックスへの興味が強めです。Blur(渦巻ブラー)のポストエフェクトを実装する月別アーカイブはてなブログをはじめよう!halya_11さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。