プレハブの編集と全体への反映【Unityスタートガイド7-2】

目次

この記事で学べること

  • プレハブの編集方法を学べます
  • Overrides(個別変更)の概念を理解できます
  • Prefab Variant(プレハブのバリエーション)の作り方を学べます
  • プレハブ変更時の自動反映機能をマスターできます
  • ネストしたプレハブの扱い方を学びます

前提知識

プレハブ編集モードでの編集

プレハブを編集する方法

プレハブを編集するには、プレハブ編集モードに入る必要があります。直接シーンに配置されたインスタンスを編集しても、プレハブ本体は変わりません。

手順1: プレハブ編集モードに入る

Projectウィンドウでプレハブをダブルクリックしてください。プレハブ編集モードに入ります。シーンに置いたインスタンスを選んで、Inspector上部の「Open」ボタンを押しても同じです。

このモードでは:

  • Sceneビューにプレハブの内容が表示される
  • Hierarchyにプレハブの構造が表示される(青いプレハブアイコン付き)
  • 通常のシーン編集と同様に編集できる

プレハブの内容を編集

プレハブ編集モードに入ったら、通常のゲームオブジェクトと同じように編集できます。

手順2: プレハブにコンポーネントを追加

例えば、プレハブにRigidbodyコンポーネントを追加してみましょう:

  1. インスペクターの「Add Component」ボタンをクリック
  2. Physics>Rigidbody を選択
  3. 必要に応じてパラメータを設定

編集モードを終了する

編集が終わったら、必ず編集モードを終了しましょう。

手順3: 編集モードを終了

Hierarchyの一番上、プレハブ名の左にある「<」(戻る矢印)をクリックしてください。元のシーンに戻ります。

  • Sceneビューの右上にAuto Saveのチェックがあり、Onなら変更はすぐにプレハブへ保存されます
  • Offにしている場合は、戻るときに保存するかどうか聞かれます(Ctrl+Sでも保存出来ます)

プレハブ変更の自動反映

マスター変更の威力

プレハブの最大の特徴は、プレハブを変更するとすべてのインスタンスに自動反映されることです。

実践1: プレハブの色を変更

  1. 3-3の記事と同じ手順で、赤いマテリアル(RedMaterial)を作っておく
  2. プレハブ編集モードで、Mesh RendererのMaterialsをRedMaterialに差し替える
  3. 編集モードを終了
  4. シーン上のすべてのインスタンスが自動的に赤くなります!

マテリアルの「色」を変えると、そのマテリアルを使っている全部のオブジェクト(プレハブ以外も)の色が変わります。プレハブだけの見た目を変えたいときは、この例のようにマテリアルを差し替えましょう。

この自動反映機能により、大量の敵キャラクターの見た目を一括変更したり、バグ修正をすべてのオブジェクトに適用したりできます。

変更が反映されるもの・されないもの

プレハブの変更は以下のように反映されます:

  • 反映される:コンポーネントの追加・削除、パラメータの変更、子オブジェクトの追加
  • 反映されない:インスタンス固有の変更(後述のOverrides)

Overrides(個別の変更)の扱い

Overridesとは?

Overridesとは、インスタンスごとにプレハブから独立して行った変更のことです。例えば、「この敵だけは少し大きくしたい」「このアイテムだけ色を変えたい」といったカスタマイズです。

Overridesの例

実践2: インスタンス固有の変更

  1. シーン上のプレハブインスタンスを選択
  2. インスペクターでScaleを (2, 2, 2) に変更
  3. 変更した項目の左側に青い線が付き、Inspector上部の「Overrides」から変更の一覧が見られます

この変更は、このインスタンスにのみ適用され、他のインスタンスには影響しません。

Overridesの管理

Inspector上部の「Overrides」のプルダウンを開くと、変更した項目の一覧と、次の2つのボタンが出てきます。

Apply All(適用):個別の変更をプレハブ本体に反映(ほかのインスタンスにも反映されます)

Revert All(元に戻す):個別の変更をやめて、プレハブと同じ状態に戻す

項目ごとに反映したいときは、変更した項目を右クリックして「Apply to Prefab」「Revert」を選ぶことも出来ます。

ネストしたプレハブ

プレハブの中にプレハブを入れる

Unityでは、プレハブの中に別のプレハブを入れることができます。これを「ネストしたプレハブ」と呼びます。

実践3: ネストしたプレハブを作る

  1. プレハブAの編集モードに入る
  2. ProjectウィンドウからプレハブBをSceneビューまたはHierarchyにドラッグ
  3. プレハブBがプレハブAの子オブジェクトになる

ネストしたプレハブは、複雑なオブジェクト(例:武器を持ったキャラクター)を作るのに便利です。

Prefab Variant:プレハブのバリエーション

「普通のコイン」と「大きくて点数の高いコイン」のように、元は同じで少しだけ違うプレハブが欲しいときは、Prefab Variantを使います。

  1. Projectウィンドウで元のプレハブを右クリック>Create>Prefab Variant
  2. 新しく出来たVariantをダブルクリックして、大きさや色など違うところだけを変える
  3. 元のプレハブを変更すると、Variantにも反映される(Variantで変えたところ以外)

インスタンスでOverridesを増やしていくより、Variantにしておく方が管理しやすくなります。

Unpack Prefabで通常オブジェクトに戻す

プレハブを解除する方法

プレハブインスタンスを通常のゲームオブジェクトに戻すこともできます。これを「Unpack Prefab」と呼びます。

実践4: プレハブを解除

  1. Hierarchyでプレハブインスタンスを選択
  2. 右クリック>Prefab>Unpack

解除後は、通常のゲームオブジェクトになります。プレハブの変更が反映されなくなります。

注意点やヒント

スライム

インスタンスを直したつもりが、ほかのインスタンスに全然反映されない・・・

フェアリー

全部に反映したいときはプレハブ編集モードで、1つだけ変えたいときはインスタンスで!迷ったらOverridesの一覧を見てみてね

また、Overridesは便利ですが、多用しすぎると管理が大変になります。よく使うバリエーションは、Prefab Variantにしておきましょう。

よくあるエラーと対処法

エラー: プレハブ編集モードから戻り方がわからない

  • 原因:戻るボタンの場所がSceneビューではなく、Hierarchyの一番上にある
  • 対処法:Hierarchyの一番上の「<」をクリックする。Auto SaveがOffの場合は、保存するか聞かれるので「Save」を選ぶ

エラー: Overridesが予期せず適用される

  • 原因:インスタンスに個別変更(Overrides)が加えられている。Overridesがある項目は、プレハブを変えてもインスタンスの値が優先されます
  • 対処法:Inspector上部のOverridesで一覧を確認し、Revert AllかApply Allで整理する

まとめ

  • プレハブを編集するにはプレハブ編集モードに入る
  • プレハブの変更はすべてのインスタンスに自動反映される
  • Overridesでインスタンスごとに個別変更が可能
  • Apply/RevertでOverridesを管理できる
  • ネストしたプレハブで複雑な構造を作れる
  • Prefab Variantで、元が同じバリエーションを作れる
  • Unpackで通常オブジェクトに戻せる

プレハブの編集方法を理解できましたか?これでプレハブを本格的に使いこなせるようになりましたね!

次のステップ

プレハブの編集方法をマスターしたら、次はプログラムからの利用方法を学びましょう:

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次