基本知識

2分で理解!UnityのPrefab(プレハブ)とは?使い方までご紹介

UnityでのPrefab(プレハブ)の説明・作り方
  • Unityの使い方を勉強しているときに「Prefab(プレハブ)」って言葉が出てきたけど、いまいちよくわからない

という悩みを解決します。

ひとことでいうと、設計図です。オブジェクトを生成する方法を詳しく書いてある設計図です。

この記事にはPrefabの説明と使い方をお伝えします。じっくり読んでPrefabを理解していただきたいです。

Prefab(プレハブ)とは設計図のこと

設計図といってもなにが書いてある設計図なのかというはなしになりますね。

どのように落ちるのかや色や大きさやコンポーネントの内容などそのオブジェクトの要素を書いた設計図です。

その設計図から作成したオブジェクトをインスタンスといいます。設計図からオブジェクトを生成することができるってことですね。

Prefab(プレハブ)を作ろう

【Hierarchy】→【PrefabにしたいオブジェクトをProjectウィンドウにドラッグ&ドロップ】

これでオブジェクトをPrefab化することができます。実際にやってみましょう。

この記事でのレイアウトは【2 by 3】となっています。Gifや画像が見にくいという方は、レイアウトを変更してください。

元となるオブジェクトを作成する(今回はCube)

Unityで元となるオブジェクトを作成する

【Hierarchy】→【Create】→【3D Object】→【Cube】

まずは元となるオブジェクトを作成していきます。名前はそのままで構いません。

【Cube】の大きさを変更する

UnityでCubeの大きさを変更する Cubeの大きさを変更する

【Hierarchy】→【Cube選択】→【Inspector】→【Transformの値を上のようにする】

のちのち変化をわかりやすくするためです。大きさを変更させてください。

オブジェクトをPrefab化する

UnityでオブジェクトをPrefab化する

【Hierarchy】→【PrefabにしたいCubeをProjectウィンドウにドラッグ&ドロップ】

Hierarchy上からPrefab化したいオブジェクトをProjectウィンドウにドラッグ&ドロップすることで、Prefabを作成することができます。

これでCubeのPrefabが完成しました。このPrefabを使うことで、さきほど作ったCubeを作成することができます。

PrefabはProjectウィンドウで黒い背景になっています。Hierarchy上では青くなっています。そこでPrefabか普通の素材なのか判断してください。もっとわかりやすくしたい場合は【CubePrefab】とか【SpherePrefab】とか後ろにPrefabとつけるとわかりやすいです。

今回は名前を変えません。

Prefab(プレハブ)を使って実物(インスタンス)を作る

Prefabはプレハブのままではただの設計図でしかありません。Prefabをもとに実物(インスタンス)を作成していきましょ。

HierarchyウィンドウのCubeを削除

CubeをHierarchyウィンドウから削除

【Hierarchy】→【Cube】→【右クリック】→【Delete】

このようなHierarchyになっていればOK。一度PrefabにしてしまったオブジェクトはHierarchy上から削除しても、Prefabから再び作成することができます。

PrefabにしちゃったらHierarchyウィンドウ上から削除してもいいのです。

Prefab(設計図)からインスタンス(現物)を作る

UnityでPrefab(設計図)からインスタンス(現物)を作る

【Projectウィンドウ】→【CubeのPrefabをSceneビューにドラッグ&ドロップする】

これで設計図をもとに実物(インスタンス)を作成することができます。

Prefab(プレハブ)の使い方・ルール

Prefabはインスタンスを生成できるだけではありません。他にもいろいろな使う方があります。Prefabのルールとともに使い方をお伝えします。

Prefab(設計図)を変更することで実物(インスタンス)も変更が適応される

Prefabの変更はインスタンスに影響

Prefabを変更することで、Prefabを元にしてつくられたインスタンスも同じように変更されます。

ある1つのインスタンスを変更してもPrefabや他のインスタンスに影響されない

Prefabや他のインスタンスに影響されない

ここではCube(1)変更してます。ただのCubeは全く影響しません。

変化させてしまったインスタンスは【Revert】でPrefabの状態に戻せる

【Revert】でPrefabの状態にする

やべっ変化しすぎたという場合は、【Revert】元に戻すことができます。

変化させたインスタンスの状態を【Apply】でPrefabに上書きできる

【Apply】でPrefabに上書きできる

やっぱこっちのインスタンスをPrefabにしたい、という場合上【Apply】で上書きすることができます。

【Apply】をおすと他のインスタンスにも適応されましたし、Prefabも書き換えられましたね。

インスタンスを選択して【Select】を押すとPrefabが選択される

【Select】を押すとPrefabが選択される

どのPrefabから作成したインスタンスなのか調べることができます。

ここまでまとめ

  • Prefabに変更を加えるとインスタンスすべてに適応
  • 【Apply】で変更をPrefab、他のインスタンスに適応
  • 【Revert】でPrefabと同じ状態に戻す
  • 【Select】でPrefabを選択できる

やっていきば慣れマウス。あとコンポーネントもタグもしっかり反映されマウス。

Prefabと複製(コピー)の違いはここにある

  • Prefabに変更を加えるとインスタンスすべてに適応
  • 【Apply】で変更をPrefab、他のインスタンスに適応
  • 【Revert】でPrefabと同じ状態に戻す
  • 【Select】でPrefabを選択できる

単純にPrefabと複製の違いは上の4つがあるかないかです。

複製でオブジェクトを増やしても、【Apply】や【Revert】や【Select】の機能はありません。

1つ1つ機能を加えていくしかないのが普通に複製したものです。そのオブジェクトをたくさん使うなら、Prefabのほうが便利ですわ。

補足:Prefabの解除方法

あくまで補足です。オブジェクトのインスタンスとPrefabとの連結を解除したいときに利用してください。

インスタンスとPrefabの関係を断ち切る感じです。親元を離れて独立というか。悲しくもあり、嬉しくもあるお別れです。

Hierarchy上でインスタンスを選択

インスタンスを選択

【Hierarchy】→【インスタンスを選ぶ(Cube (2))】

【GameObject】→【Break Prefab Instance】

Prefabとインスタンスの関係を断ち切る

【GameObject】→【Break Prefab Instance】

これで、そのオブジェクト(Cube(2))は独立します。Prefabの項目がまだありますが、Prefabから生成したものではありません。

Hierarchy上の文字が黒くなっているのが目印ですね。

Prefabを使ってオブジェクトを自動生成しよう

タップでオブジェクトを飛ばす
【Unity3D】タップしたところにオブジェクトを飛ばす【スクリプト例あり】タップしたところにオブジェクトを飛ばしたい! というなやみを解決します。 この記事では2つのスクリプトを使って、タップしたところにオブジェクトを飛ばしていきます。一回タップしてオブジェクトを飛ばすのはもちろんのこと、複数回タップしてもオブジェクトを飛ばします。...

このタップしたところにオブジェクトを飛ばす【スクリプト例あり】では、Prefabを使って、タップしたところにオブジェクトを飛ばしています。

Prefabをもっと使ってみたいという方はご覧ください。オブジェクトを自動生成する処理は3Dゲームを使う際に使えると思いますので、やって損はないとみやは思います( ・∇・)

まとめ

  • Prefabは色や大きさやコンポーネントの内容などそのオブジェクトの要素を書いた設計図
  • Prefabから作成したオブジェクトをインスタンス
  • Prefabに変更を加えるとインスタンスすべてに適応
  • 【Apply】で変更をPrefab、他のインスタンスに適応
  • 【Revert】でPrefabと同じ状態に戻す
  • 【Select】でPrefabを選択できる

Prefabって便利だねっっっっっっっっっっっっ!

タップでオブジェクトを飛ばす
【Unity3D】タップしたところにオブジェクトを飛ばす【スクリプト例あり】タップしたところにオブジェクトを飛ばしたい! というなやみを解決します。 この記事では2つのスクリプトを使って、タップしたところにオブジェクトを飛ばしていきます。一回タップしてオブジェクトを飛ばすのはもちろんのこと、複数回タップしてもオブジェクトを飛ばします。...

Prefab使ってオブジェクトを生成しています。見てね。

以上UnityのPrefabの説明と使い方でした。

さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 一生無双モードで頑張る。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...
ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるチュートリアルとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>noteでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください