【Unity/2D】スイカゲーム風の落ち物ゲームを作ってみる話 #3 果物のPrefab Variantを作成する
記事をご覧いただき、誠にありがとうございます。
次にFruitsBaseにはRigidbody2DとCircle Collider2Dが必要になりますので、それらをアタッチします。
ここまでは、普通のPrefabの作成と何ら変わりはありません。
さて、これで果物のPrefab Variantができました。
PrefabとPrefab Variantの関係を知るために、ちょっと関係の無い作業をしてみます。
すると、その親のPrefabであるFruitsBaseは影響を受けていません。
投稿主の無能です。
前回は、ポインターに移動する機能を実装しました。
今回は容器の中に落下させる果物を作っていこうと思います。
落下させる果物の作成
落下させる果物を作るには、まず果物の種類を決めなくてはいけません。
ここはSwitchに移植されたスイカゲーム本家を参考にしましょう。
本家だと11種類の果物が進化を続け、最終的にスイカになるようです。
進化の過程は
さくらんぼ→苺→ぶどう→デコポン→柿→リンゴ→梨→桃→パイナップル→メロン→スイカ
となるようです。
ここで「デコポン」を「みかん」に変えてこの順で果物を作成します。
さて、この11種類の果物をどうやって作るか…
そう、Prefabですね。
ここではPrefab Variantという機能で果物を作成してみたいと思います。
Prefab Variantとは
Prefab Variantって何ぞ?という事で簡単に説明すると、親のPrefabの機能を引き継いでいる子のPrefab、というイメージです。
普通のPrefabが各個で存在している場合は、それぞれのPrefabは各々のコンポーネントを持っていて、そのコンポーネントは独立しています。
Prefab Variantは、親のPrefabからそれぞれ子のPrefabを作成すると、親のPrefabの変更点を子のPrefab Variantは引き継いでくれます。
今回のスイカゲームで違いを例えると、果物をPrefabで作成した場合は、11種類の果物それぞれに1つずつ変更した部分を加えないといけなくなりますが、Prefab Variantで作成した果物は、親のPrefabの変更を引き継いでくれるので、変更は親のPrefabだけで済みます。
Prefabで変更すると、変更する回数は果物全部の11回になりますから、人間が作業する以上は変更の漏れが出てくる可能性が否めません。
Prefab Variantで変更すると、親のPrefabの1回だけで子のPrefab Variantに変更が行き渡りますから、ミスが少なくなります。
PrefabとPrefab Variantのイメージ
このように、今回のスイカゲームのようなものを作る際は大変有用な機能ですので、ゲームを作る時は参考にしてください。
Prefab Variantのイメージが掴めたところで、実際に作業していきます。
Prefab Variantを作る
基のPrefabの作成
まず基となるPrefabの作成です。
Assetsフォルダを選択した状態でメニュー > Folderで「Prefabs」というフォルダを作成します。
そしてPrefabsフォルダ内に入っておきます。
Prefabsフォルダを作成
Prefabsフォルダの中に入る
そしたらCircleオブジェクトを「FruitsBase」という名前で作成します。
「FruitsBase」というCircleを作成
Rigidbody2DとCircle Collider2Dをアタッチ
そして果物という事が判別できるようにしたいので、「Fruits」というタグを作成し、FruitsBaseにタグ付けします。
タグを追加
「Fruits」タグを作成
FruitsBaseにFruitsタグを付ける
これでFruitsBaseの下準備が整ったので、PrefabsフォルダにドロップしてPrefabにします。
PrefabsフォルダにFruitsBaseをドロップしてPrefabを作成
次にこのFruitsBaseを基にPrefab Variantを作成します。
Prefab Variantの作成
ではこのFruitsBaseを基にしてPrefab Variantを作成します。
FruitsBaseを選択した状態でメニュー > Prefab Variantを作成します。
Prefab Variantの名前は「型番_果物名」になるようにします。
さくらんぼの名前は「01_Cherry」で、苺の名前は「02_Strawberry」と言った感じです。
最後のスイカまで作ったら、「Variants」というフォルダをPrefabsフォルダ内に作成して、FruitsBaseと分けておきます。
FruitsBaseを選択した状態でPrefab Variantを作成
01_Cherry ~ 11_WatermelonまでのPrefab Variantを作成
Prefabsフォルダ内に「Variants」フォルダを作成
Variantsフォルダに作成したPrefab Variantを移動
アイコンにも若干の違いがあって、Prefab VariantのアイコンにはPrefabのアイコンの左側面部に斜線が入っています。
Prefabのアイコン
Prefab Variantのアイコン
左側面部に斜線が入っている
FruitsBaseのCircle Collider2Dを非アクティブにすると、FruitsBaseの変更を受けてFruitsBaseから作成した果物のPrefab VariantのCircle Collider2Dも非アクティブになります。
FruitsBaseのCircle Collider2Dを非アクティブにしてみる
すると果物のPrefab VariantのCircle Collider2Dも非アクティブになる
このように、親のPrefabの変更はそこから派生したPrefab Variantにも影響します。
では逆に、Prefab VariantのCircle Collider2Dをアクティブにしてみます。
ここではスイカにします。
Prefab VariantのCircle Collider2Dをアクティブにする
この特性を覚えておくと非常に役立ちます。
それではCircle Collider2Dを元に戻し、Hierarchyビューに残っているFruitsBaseを消して、次の作業をしていきます。
Circle Collider2Dを元に戻し、Hierarchyビューに残っているFruitsBaseを消す
果物のサイズと色を付ける
今回は画像は使わずに、Circleのサイズと色付けで果物を区別したいと思います。
まず大きさですが、起点となる01_CherryのScaleを0.5とし、Scaleを0.1ずつ大きくしていくと、06_AppleでScaleが1になります。
そして07_Pearで1.2にして再度0.1ずつ大きくして、10_Melonで1.5になります。
最後の11_WatermelonのScaleを2になるようにします。
01_Cherry
02_Strawberry
03_Grape
04_Orange
05_Persimmon
06_Apple
07_Pear
08_Peach
09_Pineapple
10_Melon
11_Watermelon
次は色を付けます。
各自の果物のイメージの色を付けてください。
01_Cherry
02_Strawberry
03_Grape
04_Orange
05_Persimmon
06_Apple
07_Pear
08_Peach
09_Pineapple
10_Melon
11_Watermelon
作成した果物達
サイズ・色は自由に設定してください。
これでゲームに登場する果物達が準備できました。
まとめ
今回は
- 果物の基となるPrefabを作成した
- 基のPrefabから派生してPrefab Variantを作成した
- 果物のPrefab Variantのサイズ・色付けをした
という事をやりました。
次回は、この果物達をポインターから生成させる機能を実装したいと思います。
では、また次回!











































コメント
コメントを投稿