ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity入門 - Prefab(プレハブ)とは、使い方 -

初めに

 Prefab(プレハブ)とは、どういったものか、Prefabの使い方についてまとめてます。


Prefabとは

 公式の説明を引用すると、Prefabとは "テンプレートの役割" を持つものです。設計図と紹介されることもあります。Prefabを使うことで、簡単にオブジェクトを複製したり、多くのオブジェクトの設定を変更したりすることができます。

docs.unity3d.com

Prefabを作ってみよう

 今回は、CubeをPrefab化してみます。

  • Prefab化したいオブジェクトをAssetsにドラッグ&ドロップする。

 これで、CubeをPrefab化できました。

Prefabを使ってオブジェクトを複製しよう

 Prefab(設計図)をもとに複製されたオブジェクトをインスタンス(実物)といいます。さきほどPrefab化したCubeのインスタンスを作ってみます。

  • PrefabをHierarckyにドラッグ&ドロップする。


 Cubeのインスタンスができました。

Prefabからインスタンスの情報を変更する

 Prehabの情報を変更すると、インスタンスすべてに変更が適応されます。PrefabのScaleを変更してみます。

 分かりやすいように、インスタンスにしたオブジェクトのPositionをずらしています。

  • Assets内にあるPrefab化したCubeのScaleを変更


 インスタンスに変更が適応されました。

インスタンスの情報を直接変更する

 インスタンスの情報を直接変更した場合は、他のインスタンスの情報は変更されず、そのインスタンスのみに影響がでます。


Revert、Apply


 インスタンス化したオブジェクトのInspectorのOverridesをクリックすると、RevertとApplyができます。

Revert(元に戻す)

 Revertでインスタンスへの変更をPrefabの状態に戻すことができます。


Apply(適応する、当てはめる)

 Applyでインスタンスへの変更をPrefabに適応し、Prefabを上書きすることができます。


複製(duplicate)とPrefabの違い

 ゲームオブジェクトは、Win:Ctrl + D / Mac:⌘ + Dで複製(duplicate)ができました。複製とPrefabでインスタンスを作ることの大きな違いは次の2点です。

  • Prefabを変更すると、すべてのインスタンスが変更される
  • Revert、Applyができる

 多くのオブジェクトを扱う場合、繰り返し同じオブジェクトを使う場合はPrefab化することで作業量を減らすことができます。

最後に

 Prefabは分かりづらいことも多いですが、便利ですので使いこなせるようになりましょう。
また、スクリプトから生成、操作する方法もまとめようと思います。