Notifications
Article
2018.3以降のプレハブの基本操作
Updated 5 months ago
876
0
今回はプレハブの基本的な操作についてです。
【2018.3以降のプレハブの話】#2 この定期投稿では、これからUnityを始める人の助けになるような情報を伝えていきます。 バックナンバーはこちら お学びグループはこちら
前回はプレハブとはどのようなものか、という話でした。今回は2018.3以降でのプレハブの基本操作についてです。今回はスクリーンショット多めなので記事にしてみました。
ちなみに今回はまだ Nested Prefab については触れません。

プレハブの作り方

まずは基本となるプレハブの作り方についてです。 これは簡単で、ヒエラルキーからプロジェクトウィンドウにドラッグ&ドロップするだけです。以前のバージョンとも特に違いはありません。
これでプレハブができますし、シーンにある元となったオブジェクトもプレハブの影響を受けるようになります。あとはプロジェクトウィンドウからヒエラルキーに逆にドラッグ&ドロップするとプレハブと関連づいたゲームオブジェクトを大量に増やせます。

表示について

プレハブと関連づいたものと、ただのゲームオブジェクトではヒエラルキーでの表示が代わります。変わる箇所が2018.2以前よりも多くなっていました(以前はプレハブを元にしたものは青文字になる、くらいでした)。
一度プレハブと関連づいたオブジェクトは前回書いたようにプレハブの値を変更するだけで他のシーンにあるオブジェクトだろうと全てに反映されるのですが、逆にヒエラルキーにあるオブジェクトの値を変更すると、プレハブとどこが違うのか分かりやすくインスペクターに表示されます。
例えば以下の例ではゲームのステージであるキューブの値をヒエラルキーで弄った例ですが、変更した箇所(今回だと Scale の Y)の左には青い帯が表示され、変更した値 Y の文字だけ太字になっています。
あと Prefab という行が追加されます。Select を押すと関連するプレハブがある場所をプロジェクトウィンドウで開きます。 Open については次回、 Overrides についてはこのあと触れます。

オブジェクトの値の変更をプレハブに適用

シーンにあるオブジェクトの値を変更すると上記のように表示が変更されるのですが、その変更を元のプレハブに反映するかは Overrides から選択できます。具体的には、変更の内容を反映するか、または、変更をなかったことにしてプレハブの値に戻すかを選べます。
今回の場合、 Stage オブジェクトの Transform の Scale の値を変更しているので、階層には Stage の Transform だけが表示されています。この状態で Apply All を選ぶと全ての変更を一括でプレハブに適用、 Revert All を押すと全ての変更をなかったことにしてプレハブの値に戻す(つまり 2018.2 以前の Apply と Revert の動作になる)ことになります。
しかし 2018.3 はもう少し細かく設定を行えます。変更した Transform をクリックすると、どの箇所がプレハブとどのくらい違うか個別のウィンドウが表示され、そちらで確認できます。それを元にこのコンポーネントではやっぱプレハブの値に戻す、このコンポーネントでは値をプレハブに反映する、ということを個別に設定できます。これは良いですね!

プレハブの影響を受けないようにする

前回書いたようにプレハブの値の変更は全て関連するゲームオブジェクトに伝わります。伝わってしまいます。
シーンにあるこのオブジェクトだけは影響を受けて欲しくない、という場合もあるかもしれません。そういうときはヒエラルキーの対象オブジェクトで右クリックして Unpack Prefab を押します。若干次回の内容になりますが、 Unpack Prefab Completely を押すと子のオブジェクトの接続状況もリセットします。
今回は以上です。
次回は具体的に Nested Prefab を扱う話を中心に書きたいと思っています。
新しい機能なだけに調べながら書いているので、抜けや間違いもあると思います。 意見や質問などあればぜひコメントくださいー!

Tags:
ゆに丸1号
Community Mascot - Other
5
Comments