Unity PrefabのOverride徹底解説

― Apply / Revert と Prefab Variantの使い分け ―

Prefabとは?

Prefab(プレハブ)は、Unityにおける再利用可能なオブジェクトのテンプレートです。

敵キャラクターやUIボタンなどをPrefab化しておけば、シーンに何度でも同じ構造で配置できます。

  • メリット
    • 元を直せばすべてのインスタンスが更新
    • 作業効率アップ(繰り返し利用が容易)
    • 保守性向上(仕様変更に強い)

Override(オーバーライド)とは?

Prefabをシーンに配置して一部を変更したときに記録される差分情報がOverrideです。

Inspectorには「Overrides」ドロップダウンが現れ、変更箇所が青いハイライトで表示されます。

Prefab:Scale = (1,1,1)

シーン上のインスタンス:Scale = (2,1,1)

→ これがOverrideとして記録される


Overrideの種類

Unity 2018.3以降、Prefabシステムは柔軟になり、以下のOverrideが扱えます。

  • Property Overrides(値の変更:Position, Text, Color など)
  • Added Components(新規コンポーネント追加)
  • Removed Components(コンポーネント削除)
  • Added GameObjects(子オブジェクト追加)
  • Removed GameObjects(子オブジェクト削除)

Overrideの操作

HierarchyでPrefabインスタンスを選ぶと、Inspectorの右上に操作メニューが出ます。

  • Apply変更をPrefab本体に反映
  • RevertPrefab本来の値に戻す
  • Apply All / Revert All差分を一括処理

スクリーンショット例では、Query-Chan-SDプレハブのインスタンスに対してAudioSourceやAttackHitDetectorなどが差分として検出されており、Apply / Revertで制御できます。


よくあるハマり

  • 変更がPrefabに残ってしまう→ 「Apply」ではなく「Revert」で戻す必要あり
  • 追加した子オブジェクトが消える→ Revertを押すと差分が破棄されるため注意
  • 複数インスタンスの調整がバラバラ→ 本体Prefabを編集して統一するのが正解

Prefab Variantとの違い

Prefab Variantは、Prefabをベースに新しい派生Prefabを作る仕組みです。

Overrideと似ていますが、役割が異なります。

項目OverridePrefab Variant
保存先シーン内インスタンスの差分新しいPrefabアセットとして保存
適用範囲そのシーンのインスタンスのみプロジェクト全体で再利用可能
主な用途一時的な調整や微修正系統の異なるバリエーション管理
同じ敵キャラの体力値だけ変更赤スライム、青スライムなど別Prefab化

判断基準

  • このシーンだけで特殊調整 → Override
  • 別の種類として再利用したい → Prefab Variant

実際のワークフロー例

例1:UIボタン

  • 状況:共通ボタンPrefabを使い、シーンごとにボタンラベルを変えたい
    • 「スタート」「リトライ」「終了」選択:Override(テキストだけの変更で完結)
  • 状況:アプリのテーマごとに見た目や装飾を大きく変えたい選択:Prefab Variant(系統ごとに派生Prefabを管理)

例2:敵キャラクター

  • 状況:同じ「スライムPrefab」を各シーンで体力や攻撃力だけ変えたい選択:Override
  • 状況:「赤スライム」「青スライム」「ボススライム」など外見や行動まで異なる選択:Prefab Variant

チーム開発での運用Tips

  • 共通処理はPrefab化、微調整はOverride
  • 系統展開はPrefab Variantで管理
  • レビュー時はOverridesパネルを必ず確認(意図しない差分のApplyを防ぐ)

まとめ

Prefab、Override、Prefab Variantを正しく使い分けることで、Unity開発の効率と保守性は大きく向上します。

  • Prefab:再利用の仕組み
  • Override:シーン単位の差分調整
  • Variant:系統の派生Prefab

「共通化」「調整」「派生展開」を意識して切り分けるのが実務のコツです。

訪問数 16 回, 今日の訪問数 16回

Prefab,Unity

Posted by hidepon