質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%

Q&A

解決済

1回答

3098閲覧

Unity/2D/ プレハブ化の必要性について

sukiyakigozens

総合スコア28

0グッド

0クリップ

投稿2017/08/04 21:59

編集2017/08/04 22:04

Unity初心者です。
プレハブ化について質問させてください。

PNG画像を単純に背景全面に1枚配置しております。
すべてのシーンで同じ背景画像で30シーンほどあります。

質問1
この場合、この背景画像をプレハブ化して
各シーンで使いまわした方がいいのでしょうか?
またはプレハブ化する意味はないでしょうか?

質問2
この背景画像をプレハブ化したファイル、してないファイルを
APK形式で書き出ししましたが、
両方ともにファイル容量は同じでした。

プレハブ化することによって、
ファイル容量の節約にはならないということでしょうか?

質問3 ※上記背景画像とは違う部品です
(ほぼ共通の部品をプレハブ化するべきか、しないべきかの問題)
30シーン内で毎シーン1枚のパネル(共通のデザイン)があり、
各パネル内に3つのボタンが配置されております。
しかし各シーンごとにボタンの表面の画像がすべて違います。

例えば、シーン1では(3つの)ボタン画像が「赤」
シーン2では(3つの)ボタン画像が「青」です。
(デザイン、大きさは同じですが、表面に貼り付けてあるPNG画像が違います)
各30シーンに30種類、すべて画像が違っております。
この場合、「3つのボタンを含むパネル部品」をプレハブ化する必要ありますでしょうか?

プレハブ化した部品は後からの変更に利点があると思いますが、
このような状況の場合で、もし、後からパネルのデザインを変えたくなった場合、
(パネル部品をプレハブ化し、各シーンごとにボタン画像を張り替えてをした後、
デザインを変更が発生し、変更後、 インスペクター内で「Apply」すると)
各シーンで意図的に変えているボタン画像がすべて同一画像に戻ってしまいます。

この点を考慮するとプレハブ化しないほうがいいでしょうか?

ご教授よろしくおねがいいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プレハブ化した場合、シーンにあるプレハブを編集して「Apply」する(または、プレハブ自身を直接編集する)と、全てのシーンでその変更が適用されます。

それを踏まえて回答しますと、以下の通りになります。

質問1
なぜ、同じ背景画像を使っているかによりますが、
「あるシーンでの変更を、他のシーンにも適用させたい」というのであれば、プレハブ化するといいでしょう。

質問2
同じ画像ファイルを使い回しているので、見える範囲では差がなかったのだと思います。
本当にファイル容量の節約になるかどうかは、私は分かりません(すいません)。

ちなみに、不要なファイルは通常apkには入らないようになっておりますが、
Resourcesディレクトリにあるファイルについては、全てapkに入ってしまうので、この点は気を付けたほうがいいです。
(プレハブを置くことはないと思いますが、StreamingAssetsも同様です)

質問3
「Apply」をしなければ、プレハブ化しても問題ないと思います。
プレハブ化しなかった場合、「全てのシーンのパネル部品」を変更する際に、「各シーンを1つ1つ開いて修正する」といった手間が出てしまいます。
プレハブ化した場合、プレハブを直接編集するだけで済みます。

ただ、プレハブ化した後の編集量が大きい(例えば、パネルのレイアウトが全て異なる、など)場合は、無理にプレハブ化する必要はないですし、する場合でも複数のプレハブに分けたほうがよいでしょう。

(追記:)
すいません。自分で読み返したところ、私の認識があなたの意図と若干違っているような気もしてきました。
共通している部分がどのくらいなのか分かりませんが、共通している部分が多い場合は、プレハブ化するほうがよいですし、そうでなければ、無理にプレハブ化する必要はありません。
あるいは、共通する部分だけプレハブ化する、という考え方もあります。

(追記2:)
ごめんなさい。さらに追記です。

各シーンで意図的に変えているボタン画像がすべて同一画像に戻ってしまいます。

とのことですが、「Apply」をすると、編集した部分(ボタン画像を含む)全てが反映されてしまうためです。
(編集した部分(≒「Apply」時に反映される部分)については、太字で表示されます。)

そのため、ボタン画像以外を変更したい場合は、以下の方法をとってください。
・プレハブを直接編集する
・空のシーンにプレハブを配置して、変更したい部分だけ編集してから「Apply」する


余談ですが、プレハブ化すると、該当するシーンを開かなくても編集できるというメリットもあります。

投稿2017/08/05 01:36

編集2017/08/05 02:38
fiveHundred

総合スコア9796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sukiyakigozens

2017/08/05 10:36

ご回答、ありがとうございます。(返信が遅れすいません。) ご指摘通りボタン部分を除いた形で(デザインが完全に同じ部分のみを)プレハブ化して、 各シーン上にてボタン画像をプレハブの上にのせる形にしようかと思います。 ------------------- すいませんが、質問させてください。 追記内に、 「プレハブを直接編集する」とありますが、 シーンに配置してないプレハブを編集するということでしょうか? (シーンに配置しない場合、インスペクタ上でサイズなどの変更はできると思いますが) プレハブ内で入れ子の構成の為、デザインの変更の場合、 シーンに配置しないとできないと思いますが、何か方法はありますでしょうか? また、 「空のシーンにプレハブを配置して、変更したい部分だけ編集してから「Apply」する」ですが、 すでに配置してあるシーンではなく、 空のシーンにてプレハブを編集するのはどういう意味はあるがあるのでしょうか? すいませんが、よろしくおねがいいたします。
fiveHundred

2017/08/05 10:50

> 「プレハブを直接編集する」とありますが、 > シーンに配置してないプレハブを編集するということでしょうか? はい、その通りです。 > (シーンに配置しない場合、インスペクタ上でサイズなどの変更はできると思いますが) > プレハブ内で入れ子の構成の為、デザインの変更の場合、 > シーンに配置しないとできないと思いますが、何か方法はありますでしょうか? この方法については、自分も分かりません。すいません。 > また、 > 「空のシーンにプレハブを配置して、変更したい部分だけ編集してから「Apply」する」ですが、 > すでに配置してあるシーンではなく、 > 空のシーンにてプレハブを編集するのはどういう意味はあるがあるのでしょうか? すでに配置してあるシーンに、新しくパレハブを配置し、それを編集して「Apply」したら削除する、ということでしたら、空のシーンである必要はありません。 空のシーンであるのは、途中で間違ってシーンを上書き保存してしまわないように、そうしているだけです。
sukiyakigozens

2017/08/05 11:28

わかりました。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問