質問: Unity初心者です。 プレハブ化について質問させてください。 PNG画像を単純に背景全面に1枚配置しております。 すべてのシーンで同じ背景画像で30シーンほどあります。 **質問1** この場合、この背景画像をプレハブ化して 各シーンで使いまわした方がいいのでしょうか? またはプレハブ化する意味はないでしょうか? **質問2** この背景画像をプレハブ化したファイル、してないファイルを APK形式で書き出ししましたが、 両方ともにファイル容量は同じでした。 プレハブ化することによって、 ファイル容量の節約にはならないということでしょうか? **質問3** ※上記背景画像とは違う部品です (ほぼ共通の部品をプレハブ化するべきか、しないべきかの問題) 30シーン内で毎シーン1枚のパネル(共通のデザイン)があり、 各パネル内に3つのボタンが配置されております。 しかし各シーンごとにボタンの表面の画像がすべて違います。 例えば、シーン1では(3つの)ボタン画像が「赤」 シーン2では(3つの)ボタン画像が「青」です。 (デザイン、大きさは同じですが、表面に貼り付けてあるPNG画像が違います) 各30シーンに30種類、すべて画像が違っております。 この場合、「3つのボタンを含むパネル部品」をプレハブ化する必要ありますでしょうか? プレハブ化した部品は後からの変更に利点があると思いますが、 このような状況の場合で、もし、後からパネルのデザインを変えたくなった場合、 (パネル部品をプレハブ化し、各シーンごとにボタン画像を張り替えてをした後、 デザインを変更が発生し、変更後、 インスペクター内で「Apply」すると) 各シーンで意図的に変えているボタン画像がすべて同一画像に戻ってしまいます。 この点を考慮するとプレハブ化しないほうがいいでしょうか? ご教授よろしくおねがいいたします。
回答: プレハブ化した場合、シーンにあるプレハブを編集して「Apply」する(または、プレハブ自身を直接編集する)と、全てのシーンでその変更が適用されます。 それを踏まえて回答しますと、以下の通りになります。 **質問1** なぜ、同じ背景画像を使っているかによりますが、 「あるシーンでの変更を、他のシーンにも適用させたい」というのであれば、プレハブ化するといいでしょう。 **質問2** 同じ画像ファイルを使い回しているので、見える範囲では差がなかったのだと思います。 本当にファイル容量の節約になるかどうかは、私は分かりません(すいません)。 ちなみに、不要なファイルは通常apkには入らないようになっておりますが、 `Resources`ディレクトリにあるファイルについては、全てapkに入ってしまうので、この点は気を付けたほうがいいです。 (プレハブを置くことはないと思いますが、`StreamingAssets`も同様です) **質問3** 「Apply」をしなければ、プレハブ化しても問題ないと思います。 プレハブ化しなかった場合、「全てのシーンのパネル部品」を変更する際に、「各シーンを1つ1つ開いて修正する」といった手間が出てしまいます。 プレハブ化した場合、プレハブを直接編集するだけで済みます。 ただ、プレハブ化した後の編集量が大きい(例えば、パネルのレイアウトが全て異なる、など)場合は、無理にプレハブ化する必要はないですし、する場合でも複数のプレハブに分けたほうがよいでしょう。 (追記:) すいません。自分で読み返したところ、私の認識があなたの意図と若干違っているような気もしてきました。 共通している部分がどのくらいなのか分かりませんが、共通している部分が多い場合は、プレハブ化するほうがよいですし、そうでなければ、無理にプレハブ化する必要はありません。 あるいは、共通する部分だけプレハブ化する、という考え方もあります。 (追記2:) ごめんなさい。さらに追記です。 > > 各シーンで意図的に変えているボタン画像がすべて同一画像に戻ってしまいます。 > > > とのことですが、「Apply」をすると、編集した部分(ボタン画像を含む)全てが反映されてしまうためです。 (編集した部分(≒「Apply」時に反映される部分)については、太字で表示されます。) そのため、ボタン画像以外を変更したい場合は、以下の方法をとってください。 ・プレハブを直接編集する ・空のシーンにプレハブを配置して、変更したい部分だけ編集してから「Apply」する 余談ですが、プレハブ化すると、該当するシーンを開かなくても編集できるというメリットもあります。