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

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

ただいまの
回答率

88.58%

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

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,594

sukiyakigozens

score 28

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

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

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

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

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

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

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

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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

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

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

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

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

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

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

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

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

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

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

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


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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/05 19:36

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

    すいませんが、よろしくおねがいいたします。

    キャンセル

  • 2017/08/05 19:50

    > 「プレハブを直接編集する」とありますが、
    > シーンに配置してないプレハブを編集するということでしょうか?
    はい、その通りです。

    > (シーンに配置しない場合、インスペクタ上でサイズなどの変更はできると思いますが)
    > プレハブ内で入れ子の構成の為、デザインの変更の場合、
    > シーンに配置しないとできないと思いますが、何か方法はありますでしょうか?
    この方法については、自分も分かりません。すいません。

    > また、
    > 「空のシーンにプレハブを配置して、変更したい部分だけ編集してから「Apply」する」ですが、
    > すでに配置してあるシーンではなく、
    > 空のシーンにてプレハブを編集するのはどういう意味はあるがあるのでしょうか?
    すでに配置してあるシーンに、新しくパレハブを配置し、それを編集して「Apply」したら削除する、ということでしたら、空のシーンである必要はありません。
    空のシーンであるのは、途中で間違ってシーンを上書き保存してしまわないように、そうしているだけです。

    キャンセル

  • 2017/08/05 20:28

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

    キャンセル

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

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る