「Prefabを編集したのに、なぜかシーン側に反映されない…」
Unityを触り始めた頃、この状態でかなり混乱した人は多いと思います。
特にPrefabは、「どこを編集しているのか」が見えにくいため、知らないうちにOverrideが発生していたり、インスタンスだけを変更していたりすることがよくあります。
しかも厄介なのが、エラーが出ないケースが多いことなんですよね。
そのため、「壊れた?」「保存されてない?」と不安になりやすいです。
私も最初の頃、Apply Allを勢いで押してしまい、Prefab全体の見た目を全部変えてしまったことがあります……。
Hierarchyが一瞬でカラフルになって、ちょっと笑いました🙂
Prefabの反映トラブルは、コードミスというよりPrefabの仕組みをまだ整理できていない時に起きやすい問題です。
特に混同しやすいのが、このあたりです。
- Prefabアセットとインスタンスの違い
- ApplyとRevertの役割
- Overrideが優先される仕組み
- Prefab Variantの継承構造
- Prefab Modeでの保存
このあたりを順番に整理していくと、「なぜ反映されないのか」がかなり見えるようになります。
今回は、Prefab変更が反映されない原因を、初心者が詰まりやすい順番で整理しながら、Apply・Override・Variantの違いまでまとめて解説していきます。
Unity Prefabが反映されない原因は主に4つ
Prefabの変更が反映されない時、まず覚えておきたいのは「Unityが壊れた」わけではないケースがかなり多いということです。
実際には、Prefabの仕組みどおりに動いているだけだった、というパターンがよくあります。
特に初心者のうちは、次の4つを確認すると原因をかなり絞れます。
- インスタンス側でOverrideされている
- PrefabではなくHierarchy側を編集している
- Prefab Modeで保存できていない
- Prefab Variant側で上書きされている
まずは、発生頻度が高い順に見ていきましょう。
まず確認するチェック項目
| 症状 | 原因の可能性 | 最初に見る場所 |
|---|---|---|
| 特定のオブジェクトだけ変わらない | Override | Inspectorの青線・太字 |
| 編集した内容が戻る | 保存漏れ | Prefab ModeのSave |
| 一部だけ別の値になる | Variant上書き | Prefab Variant |
| 変更したのに他へ反映されない | インスタンス編集 | Hierarchy / Project |
特に多いのが、「Prefabを編集したつもりで、実はシーン上のインスタンスだけを編集していた」ケースです。
Unityでは、ProjectウィンドウにあるPrefabアセットと、Hierarchy上に配置したインスタンスは別物として扱われます。
そのため、Hierarchy上だけを編集していると、他のPrefabには変更が広がりません。
最初に見るべき優先順位
Prefabの反映トラブルは、上から順に確認するとかなり早く解決できます。
- Inspectorに青線や太字がないか確認する
- Overridesボタンが表示されていないか見る
- Prefab ModeのAuto Saveを確認する
- Prefab Variantを編集していないか確認する
逆に、いきなりApply Allを押すのはあまりおすすめしません。
理由は、「どの変更がOverrideなのか理解しないままPrefab全体を書き換えてしまう」ことがあるからです。
私も昔、UIの色だけ直したつもりが、ScaleやPositionまで全部Applyされてしまい、レイアウトが崩壊したことがあります。
Prefab周りは、慣れるまでは「まず原因確認」がかなり大事です。
Prefab自体の基本をまだ整理できていない場合は、こちらも先に読んでおくと理解しやすくなります。
Prefabとインスタンスの違い
Prefabの反映問題を理解するうえで、一番大事なのが「Prefabアセット」と「インスタンス」は別物という考え方です。
ここが曖昧なままだと、「なんで変更が反映されないの?」がずっと発生しやすくなります。
まずは、Prefabの構造をシンプルに整理してみましょう。
Prefabアセットは元データ
Projectウィンドウに保存されているPrefabは、いわばテンプレートです。
例えばEnemy.prefabがある場合、そのPrefabには以下のような情報が保存されています。
- 見た目
- コンポーネント
- 設定値
- 子オブジェクト構成
- スクリプト参照
そして、通常はこのPrefabアセットを変更すると、シーン上に置かれたインスタンスへ変更が同期されます。
つまり、Prefabアセットは「元データ」なんですね。
シーン上のPrefabはインスタンス
一方、Hierarchyに配置したPrefabは、Prefabアセットそのものではありません。
こちらはPrefabアセットを元に生成されたインスタンスです。
イメージとしてはこんな感じです。
- Prefabアセット → 設計図
- インスタンス → 設計図から配置した実物
例えばEnemy.prefabをシーンに10体置いた場合、10体とも同じPrefabアセットを参照しています。
そのため、Prefabアセット側の色を赤に変更すると、本来は10体全部が赤になります。
ただし、ここでインスタンス側に個別変更があると話が変わってきます。
「編集したのに反映されない」の正体
よくあるのが、次のような流れです。
- Hierarchy上の敵AだけScaleを変更
- あとでPrefabアセット側も変更
- 敵AだけScaleが変わらない
この状態になると、「Prefabの変更が反映されてない!」と感じやすいです。
でも実際には、Unity側は正常動作しています。
なぜなら、敵Aには「インスタンス側の変更(Override)」が存在しているからです。
Unityでは、インスタンス側で変更した値は、Prefabアセットより優先されます。
つまり、「Prefabよりインスタンス側の設定を優先してね」という状態になっているんですね。
この仕様を知らないと、Prefab編集がかなり分かりにくく感じます。
逆に言うと、
- どこを編集しているか
- Overrideがあるか
- Apply/Revertが必要か
この3つを意識できるようになると、Prefab管理がかなり安定します。
Overrideが原因の反映されない問題
Prefabの変更が反映されない原因で、いちばん遭遇しやすいのがOverrideです。
特に、「他のオブジェクトは変わるのに、1つだけ変わらない」場合は、かなり高い確率でOverrideが関係しています。
Unityを触り始めた頃は、この仕様で「なんで!?」となりやすいんですよね。
Overrideとはインスタンス側の上書き
Overrideとは、シーン上のインスタンスに対して加えた個別変更のことです。
例えば、Enemy.prefabをシーンに配置したあと、Hierarchy上の敵だけ色を変更するとします。
この時、その敵には「Prefabとは違う値」が保存されます。
するとUnityは、
「このインスタンスは特別設定だから、Prefab側よりこちらを優先しよう」
という扱いをします。
その結果、あとからPrefabアセット側を変更しても、その項目だけ反映されなくなります。
つまり、「反映されない」のではなく、インスタンス側の設定が優先されている状態なんですね。
Overrideの見分け方
Overrideが発生しているかどうかは、Inspectorを見るとかなり分かりやすいです。
次の状態になっていたら、Overrideの可能性が高いです。
- プロパティ名が太字
- 左側に青い線が表示される
- Overridesボタンが表示される
例えば、TransformのScaleだけ変更している場合、その項目だけ太字になります。
慣れてくると、「あ、ここOverrideされてるな」とすぐ気づけるようになります。
ApplyとRevertの使い分け
Overrideを見つけたら、次はApplyするかRevertするかを判断します。
| 操作 | 意味 | 使う場面 |
|---|---|---|
| Apply | インスタンス変更をPrefabへ反映 | 全体へ広げたい時 |
| Revert | インスタンス変更を破棄 | Prefab状態へ戻したい時 |
例えば、
- 「この敵だけ調整したけど、やっぱり全敵共通にしたい」 → Apply
- 「この敵だけおかしくなったから元に戻したい」 → Revert
こんな感じで使い分けます。
初心者のうちは、まずRevertで戻せることを覚えると安心感がかなり違います。
よくある失敗例
Override関連で特に多いのが、Apply Allの事故です。
例えば、色だけ反映したかったのに、
- Position
- Scale
- 参照オブジェクト
まで全部Prefabへ適用されてしまうことがあります。
その結果、シーン全体の配置が崩れることもあります。
なので、慣れるまではApply Allを連打しないのがおすすめです。

まずはOverridesを開いて、どの項目が変更されているか確認してから操作すると、Prefab事故がかなり減ります。
Prefab Modeの保存忘れを確認する
「Prefabを直接編集したのに、シーンへ戻ったら変更が消えている」
この症状が出る場合は、Prefab Modeで保存できていない可能性があります。
特にUnityを触り始めた頃は、「編集した=自動保存された」と思いやすいので、ここで混乱しやすいです。
Prefab ModeとはPrefabを直接編集する画面
Prefab Modeは、Prefabアセットそのものを編集する専用画面です。
次の方法で開けます。
- ProjectウィンドウのPrefabをダブルクリック
- Hierarchy上のPrefab横にある矢印をクリック
Prefab Modeへ入ると、通常のシーン編集とは少し表示が変わります。
この状態で編集しているのは、Hierarchy上のインスタンスではなく、Prefabアセット本体です。
つまり、ここで保存した変更は、基本的にすべてのインスタンスへ反映されます。
Auto SaveがOFFならSaveが必要
Prefab Modeでは、画面右上にAuto Saveがあります。
これがONなら、変更は自動保存されます。
ただし、OFFの場合は注意が必要です。
Auto Save OFFの状態では、編集してもまだ保存確定されていません。
そのままシーンへ戻ると、変更が消えることがあります。
この状態になると、
- 「Prefabが反映されない」
- 「保存されたと思ったのに戻った」
- 「Unityがおかしい?」
と感じやすいんですね。
特に複数Prefabを編集している時は、気づかないまま保存漏れしていることがあります。
反映されない時の確認手順
Prefab変更が消える場合は、次の順番で確認すると原因を切り分けやすいです。
- Prefab Modeを開く
- 右上のAuto Saveを見る
- OFFならSaveボタンを押す
- シーンへ戻って反映を確認する
ちなみに、チーム開発では「Auto Save OFF運用」をしている場合もあります。
理由は、編集途中の変更を即反映したくないケースがあるからです。
そのため、環境によっては「保存操作を前提」にしていることもあります。
もしPrefab自体がProjectに表示されない、読み込みがおかしい場合は、アセット側の問題も確認してみてください。
Prefab Variantで反映されない原因
Overrideに慣れてきた頃、次に混乱しやすいのがPrefab Variantです。
特に、
- 「ベースPrefabを変更したのに一部だけ更新されない」
- 「Applyしたら別Prefabまで変わった」
- 「どこが元データなのか分からない」
こういった状態になった場合は、Variant構造を疑ったほうがいいかもしれません。
Prefab Variantはコピーではなく継承
Prefab Variantは、通常Prefabのコピーではありません。
正確には、別Prefabを継承した派生Prefabです。
例えば、Enemy_Base.prefabを元にして、
- Enemy_Fire.prefab
- Enemy_Ice.prefab
- Enemy_Boss.prefab
のようなVariantを作ることがあります。
この場合、Enemy_Base.prefabを変更すると、基本的にはVariant側にも変更が反映されます。
ただし、Variant側で同じ項目をOverrideしている場合は、その値が優先されます。
つまり、ここでもOverrideの考え方が重要なんですね。
ベースPrefab変更が届かないケース
例えば、ベースPrefab側でMaterialを変更したのに、特定Variantだけ変わらないケースがあります。
この時は、Variant側で既にMaterialを上書きしている可能性があります。
するとUnityは、
「Variant側で個別設定されているから、そちらを優先しよう」
という扱いをします。
そのため、ベースPrefabの変更が届かなくなります。
特に複雑になりやすいのが、
- Nested Prefab
- Variantの多重継承
- UIプレハブ
- 敵キャラクター派生
あたりです。
構造が深くなるほど、「どこでOverrideされているか」が見えにくくなります。
VariantでApply Allに注意する
Variant運用で特に注意したいのがApply Allです。
通常Prefab以上に、適用先を意識しないと事故が起きやすくなります。
例えば、Variant側で変更した内容をApplyすると、場合によってはベースPrefab側へ影響することがあります。
すると、他のVariantや通常Prefabまで変更されてしまうケースがあります。
特にチーム開発では、これがかなり危険です。
そのため、中級者以上でも、
- Apply対象を確認する
- どのPrefabを編集しているか確認する
- 変更範囲を把握してからApplyする
この確認をかなり丁寧にやっています。
もしVariant構造が複雑になり始めたら、
- 命名規則を揃える
- Base Prefabを分ける
- 責務を分離する
といった設計整理も大切になってきます。

Prefabは便利ですが、継承構造が深くなると「便利さ」と「管理難易度」がセットで上がっていくんですよね。
3分でできるPrefab診断チェックリスト
Prefabの反映トラブルは、順番に確認するとかなり早く原因を特定できます。
逆に、闇雲にApply AllやReimportを試し始めると、別の問題まで増えることがあります。
ここでは、私が実際によく確認している順番でチェックしていきます。
チェック1:HierarchyとProjectのどちらを編集したか
まず最初に見るのがここです。
編集していたのが、
- Projectウィンドウ → Prefabアセット編集
- Hierarchy → インスタンス編集
どちらなのか確認しましょう。
特に初心者のうちは、Hierarchy側だけを編集して「Prefabを変更したつもり」になっていることがよくあります。
他のインスタンスへ反映したい場合は、Prefabアセット側を編集する必要があります。
チェック2:Inspectorに太字や青線があるか
次にInspectorを見ます。
もし、
- 項目名が太字
- 左側に青線
になっている場合、その値はOverrideされています。
つまり、インスタンス側の設定がPrefabより優先されている状態です。
この場合は、
- 全体へ反映したい → Apply
- 元Prefabへ戻したい → Revert
を判断します。
慣れるまでは、いきなりApply Allせず、どの項目がOverrideされているか確認するのがおすすめです。
チェック3:Overridesに変更項目があるか
Inspector上部のOverridesボタンも確認します。
ここを開くと、現在どの項目がPrefabと違うか一覧で見られます。
この時、
- 意図した変更だけか
- 不要な変更が混ざっていないか
を確認しましょう。
特にTransform系は、少し動かしただけでもOverrideになりやすいです。
「気づかないうちにPositionだけ変わっていた」というのは本当によくあります。
チェック4:Prefab Modeで保存したか
Prefab Modeで編集した場合は、Saveされているか確認します。
Auto SaveがOFFの環境では、保存前にシーンへ戻ると変更が消えることがあります。
特に複数Prefabを触っている時は、保存漏れに気づきにくいです。
「編集したはずなのに戻った」という時は、まずSaveを疑ってみてください。
チェック5:Variantを編集していないか
最後に、Prefab Variantを使っていないか確認します。
Variantでは、ベースPrefabの変更が届かないケースがあります。
特に、Variant側で同じ項目をOverrideしている場合は、その値が優先されます。
もし、
- 一部Variantだけ変わらない
- 特定Prefabだけ設定が違う
- Apply先が分かりにくい
こんな状態なら、Variant構造を疑ってみましょう。

Prefab問題は、「どこを編集したか」と「どこで上書きされているか」を整理できると、一気に解決しやすくなります。
よくある誤解と注意点
Prefabは便利ですが、初心者のうちは「バグっぽく見える正常動作」がかなり多いです。
特に、OverrideやVariantを理解し始めるタイミングで混乱しやすいポイントがあります。
ここでは、Prefab運用で誤解されやすい部分を整理しておきます。
Positionが反映されないのは異常ではない
「Prefabの位置を変えたのに、他のオブジェクトへ反映されない」
これはUnityの不具合ではなく、Transformの扱いによるものです。
Prefabインスタンスは、シーンごとに配置場所が異なるのが普通ですよね。
そのため、PositionやRotationなどの整列情報は、インスタンスごとの差分として扱われることがあります。
例えば、敵Prefabを10体置いた時、全員が同じ座標へ移動したら困ります。
なので、Transform系は「Prefab同期されないように見える」ケースがあります。
特にUIではRectTransformも絡むため、初心者のうちはかなり混乱しやすいポイントです。
UnpackするとPrefab変更は反映されない
Unpackは、Prefabとの接続を解除する操作です。
これを実行すると、そのオブジェクトは通常のGameObjectになります。
つまり、以後はPrefabアセットを変更しても反映されません。
そのため、
- 「急にPrefab更新されなくなった」
- 「Overridesが出なくなった」
- 「Prefabアイコンが変わった」
こんな時は、誤ってUnpackしていないか確認してみましょう。
特に、Unpack Completelyは接続を完全解除するので注意です。
子オブジェクトの削除は慎重に扱う
Prefabインスタンス上で子オブジェクトを扱う時も、少し注意が必要です。
UnityバージョンやPrefab構造によって挙動差はありますが、
- 削除扱い
- 非アクティブ化
- Override扱い
の区別が分かりにくいケースがあります。
特に初心者のうちは、「とりあえずDelete」で構造が崩れやすいです。
もし一時的に不要なだけなら、まずはSetActive(false)で非表示化するほうが安全な場合もあります。
Apply Allは便利だが事故りやすい
Apply Allは、一括反映できる便利機能です。
ただし、便利さと危険性がかなりセットになっています。
例えば、
- 参照変更
- Transform変更
- テスト用設定
まで一緒にPrefabへ保存されることがあります。
特にVariantやNested Prefabが絡むと、想定より広範囲へ影響することがあります。
なので、慣れるまでは、
- 個別Applyを使う
- Overrides内容を確認する
- どのPrefabへ適用するか見る
この3つを意識するとかなり安全です。
Inspector周りをもっと見やすく整理したい場合は、Odin Inspectorのようなエディタ拡張を使う人もいます。
まとめ:Prefab反映ミスはOverrideから確認
Prefabの変更が反映されない時は、「Unityが壊れた」と考える前に、まずOverrideを確認するのがおすすめです。
実際、Prefabトラブルの多くは、
- どこを編集しているか
- どの値が上書きされているか
- Apply/Revertをどう使うか
この認識ズレで発生しています。
特に初心者のうちは、HierarchyとProjectの違いを意識できるだけでも、かなりPrefab事故が減ります。
最初に確認する順番
反映されない時は、次の順番で確認すると原因を切り分けやすいです。
- Overrideが発生していないか
- Apply/Revertを間違えていないか
- Prefab Modeで保存しているか
- Prefab Variantで上書きされていないか
- Unpackしていないか
特に青線と太字は、Prefabトラブルの重要サインです。
慣れてくると、Inspectorを見ただけで「どこがOverrideされているか」がかなり分かるようになります。
再発防止の考え方
Prefab運用を安定させたいなら、「どこへ反映したい変更なのか」を意識することが大切です。
- 全体へ反映したい → Prefab側を編集
- 一部だけ変更したい → Overrideとして扱う
- 派生を作りたい → Variantを使う
この整理ができると、Prefab構造がかなり見えやすくなります。
また、Apply Allは便利ですが、慣れるまでは慎重に使うのがおすすめです。
私も最初の頃、テスト用変更をそのままApplyしてしまい、シーン全体を壊したことがあります。
Prefabは本当に便利なんですが、便利だからこそ「どこへ影響するか」を意識するのが大事なんですよね。
Prefab管理は整理ルールも重要
中級者以上になると、Prefabそのものより「管理方法」で悩み始めることも増えます。
例えば、
- フォルダ構成
- 命名規則
- Base Prefabの分け方
- Variant運用ルール
このあたりを整理しておくと、大規模化しても破綻しにくくなります。
Prefab管理をもっと整理したい場合は、こちらもおすすめです。
よくある質問(FAQ)
- QPrefabの変更が一部だけ反映されないのはなぜ?
- A
かなり多い原因は、インスタンス側でOverrideされているケースです。
Unityでは、インスタンス側で変更した値がPrefabアセットより優先されます。
そのため、Prefab側を編集しても、Overrideされている項目だけ更新されません。
まずはInspectorを見て、
- 青線
- 太字
- Overridesボタン
が表示されていないか確認してみてください。
- QApplyとRevertはどちらを使えばいい?
- A
判断基準は、「その変更を全体へ広げたいか」です。
- Apply → 他のPrefabインスタンスにも反映したい
- Revert → 元Prefabの状態へ戻したい
例えば、敵のHP設定を全敵共通にしたいならApplyです。
逆に、「この敵だけおかしくなったから元に戻したい」ならRevertを使います。
迷った時は、Apply Allより個別Applyのほうが安全です。
- QPrefab Variantはいつ使うべき?
- A
共通部分は同じで、一部だけ差分を持たせたい時に便利です。
例えば、
- 色違いの敵
- ステータス違いのNPC
- 見た目だけ違うUI
などはVariantと相性が良いです。
ただし、Prefab構造が複雑になるほど、Override管理も難しくなります。
そのため、最初のうちは通常PrefabとApply/Revertに慣れてからVariantを使うほうが管理しやすいことが多いです。










※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。