プレハブ
コンポーネント、プロパティー、子ゲームオブジェクトを持った一つのゲームオブジェクトを再利用可能なアセット「プレハブ」(Prefab) として作成・保存することができる。プレハブをインスタンス化してシーンに配置した場合、元のプレハブアセットに加えた編集は全てのプレハブインスタンスに反映される。プレハブインスタンスの一部の設定を変更したい場合は「オーバーライド」を使用することができる。一連のオーバーライドを継承するプレハブバリアントを作成することができる。
参考:
使い方
参考:
Unity のプレハブを使ってみよう | ゲームの作り方!(dkrevel.com)
Unity 2018.3 以降における Prefab の使い方をちゃんと理解する | LIGHT11
概要
参考:
新しい Prefab システム | kurihara-n の日記
2分で理解!Unity の Prefab (プレハブ) とは?使い方までご紹介 | Unishar
Unity 2018.3 の Prefab ワークフローの実用について考える | てっくぼっと!
新しいプレハブワークフローのご紹介 | Unity Technologies Blog
ココが変わる!Unity の新しいエディタワークフロー | Unity Technologies Blog
入門
参考:
2018.3 以降のプレハブの基本操作 | Unity Connect
プレハブモード
参考:
プレハブモードでのプレハブの編集 | Unity マニュアル [公式]
Nested Prefab
参考:
Unpack
アンパック (Unpack) を実行するとプレハブインスタンスの内容を個別のゲームオブジェクトに展開する。
- Unpack Prefab:入れ子になったプレハブはプレハブの状態を維持したままで、プレハブの1階層目のみ展開される。
- Unpack Prefab Completely:入れ子になったプレハブも全て個別のゲームオブジェクトに展開される。
参考:
プレハブインスタンスの展開 | Unity マニュアル [公式]
プレハブバリアント
プレハブバリアントを作成するには、Project ウィンドウのプレハブを右クリックして「Create > Prefab Variant」を実行する。プレハブバリアントにオーバーライドを持たせるためには、プレハブをプレハブモードで開いて編集を行う。
既存のプレハブインスタンスからプレハブバリアントを作成する場合は、Hierarchy ウィンドウのプレハブインスタンスを Project ウィンドウにドラッグし、メニューから「」を実行する。
参考:
プレハブバリアント | Unity 2018.4 マニュアル [公式]
インスタンスオーバーライド
参考:
インスタンスのオーバーライド | Unity マニュアル [公式]
プレハブを作成する
参考:
プレハブを編集する
参考:
プレハブモードでのプレハブの編集 | Unity マニュアル [公式]
インスタンスを通したプレハブの編集 | Unity マニュアル [公式]
What is the proper way to edit prefabs – Unity Answers
FBX の扱い
FBX をプレハブとして扱い、プレハブを作成してゲーム内で使用するプレイヤーやシーン内のオブジェクト、アイテムなどとして使用する。FBX 内のオブジェクト名や階層構造を変更すると、それらのオブジェクトに紐づいていたプレハブバリアントを編集して適用したオーバーライドの情報は消えてしまう。
参考:
Unity 2018.3 以降で FBX を Prefab 化して正しく取り扱う | LIGHT11
FBX 更新後に Prefab を再作成すべきか? – Qiita
Working with Prefabs | Unity FBX Exporter 2.0 [Official]
プレハブで置き換える
Project ウィンドウのプレハブを Alt
キーを押しながらドラッグして Hierarchy ウィンドウのゲームオブジェクトにドロップすれば、対象のゲームオブジェクトをプレハブに置き換えることができる。
参考:
Alt キーを押しながらプレハブをゲームオブジェクトにドラッグすると置き換えることができる | コガネブログ
Replace prefab – Unity Answers
Replace game object with prefab? – Unity Forum
スクリプトで置き換える
参考:
プレハブを一括で差し替える | RogueLive 公式ブログ
Replace GameObjects or Prefabs with another Prefab | Unity3D.College
Replacing all objects in scene with another object – Game Development Stack Exchange
モデルの差し替え
参考:
Prefab のモデルの差し替えを、セットしたコンポーネントを一々付け直さずに行う方法 | テラシュールブログ
キャラクターモデルを差し替える時にコンポーネントの付け替えを自動化したい話 | soy-software
Mesh Renderer | Unity マニュアル [公式]
Skinned Mesh Renderer | Unity マニュアル [公式]
How do i officially replace a FBX file? – Unity Forum
Keep the prefab connection when updating FBX asset – Stack Overflow
Keep the prefab connection with FBX – Game Development Stack Exchange
How do I change the mesh in an existing prefab in Unity? – Game Development Stack Exchange
スクリプトでランタイムにインスタンスを作成する (Instantiate)
参考:
スクリプトから Prefab のインスタンスを作る方法 – Qiita
Prefab と Instantiate の基本 – Qiita
ランタイムのプレハブのインスタンス化 | Unity マニュアル [公式]
Object.Instantiate | Unity スクリプトリファレンス [公式]
インスタンスを破壊する (Destroy)
プレハブインスタンスを破壊するには Destroy
メソッドを使う。
obj = Instantiate(somethingPrefab)Destroy(obj)
参考:
Object.Destroy | Unity スクリプトリファレンス [公式]
ゲームオブジェクトの作成および削除 | Unity マニュアル [公式]
How to destroy an instantiated prefab in C#? – Unity Answers
Destroy instantiated object instead of prefab – Unity Answers
ガベージコレクション (GC)
参考:
Unity コンポーネントが Destroy されても、オブジェクトが GC で回収されないかもしれない話 – Qiita
Prefab Editing Environments
プレハブ編集の際に使用するシーンを設定する。
- Regular Environment
- UI Environment
参考:
Unity 2018.3 からの Prefab ワークフロー | ゴイサギ日記
新たな Prefab ワークフローで Prefab の RootCanvas の RectTransform が崩れる問題の対策 – Qiita
Editing Environment | Unity マニュアル [公式]
Lightning is super dark when Editing Prefab Asset – Unity Forum
Missing Script
参考:
FindMissingScripts | Unify Community Wiki (wiki.unity3d.com)
プレハブが見つからない (Missing)
現象:
Hierarchy ウィンドウでゲームオブジェクトが赤く表示され、選択すると Inspector ウィンドウで Missing と表示される。
原因:
ゲームオブジェクトの元になった Prefab アセットが削除された、もしくは、GUID が変更された。
対処法:
- GUID を手動で紐付けし直す
- 諦めて Break Prefab Instance を実行する
参考:
Missing Prefab を再度紐づける方法 – Qiita
Prefab だったゲームオブジェクトの Missing を解除 | クリエイターとっち日記
Missing Prefab かどうか確認する方法 | コガネブログ
プレハブのプレビューが真っ暗になる
URP 用のシェーダーを使用しているプレハブの場合は、レンダリングパイプラインを URP に切り替えてマテリアルを URP 用に変換すると正常に表示される。
参考:
All Asset Previews for Prefabs and Models are fully black – Unity Answers
All prefab previews are completely black – Unity Forum
Prefab preview is dark in the inspector – Unity Answers
Preview Pane Very Dark – Unity Forum
Why are my prefab and model previews not showing? – Unity Forum
Tips
参考:
Improved Prefabs Introduction & FAQ | Unity Forum [Official]