【Unity】パズドラ風パズル作ってみた
はじめに
最近いろんなゲームをやりつつ、戦略系などが好きなんだなーと実感しました。
その中でも単純なんだけど考えるようなものは暇つぶしには最適で、それがパズルでした。
パズルと言ったらパズドラということもあり(1週間くらいしかやったことないが...)
作ってみることにしました。
完成した動作が以下です。
レイアウト等はまだまだですが一応パズルできる...という感じです。
これにコンボやスコアを設定すれば完璧、作り上簡単にカスタマイズできるはずです。
今日朝から作りはじめてここまでできた pic.twitter.com/RAbkk3kZkn
— ナノカさんのアカウント (@nanokanato) 2017年5月31日
実装内容
実装後に違うパズルに改造してしている途中なので確かこうだったなぁという復元になってますが、動かない場合はコメント等にておしらせください。
Line3Block
パズルのピースを用意します。
80x80のPrefabです。
階層構造はBlock(CreateEmpty:空のGameObject)に
BackGround(UI.Image)とIcon(UI.Image)を用意します。
Blockには以下のScriptを追加します。
主にピースの移動後の座標と種類を管理しています。
InspectorからBlockの色(BlockColors)とキャラアイコン(BlockCharas)を設定します。
BackGroundとIconにはBlockの下層に作った同じ名前のUI.Imageを設定します。
設定したBlockの色とキャラアイコンの数だけピースの種類が増えます。
Line3Puzzle
BlockのPrefabを生成したり、ピースが揃っているか確認する部分です。
階層構造はCanvas以下にBoard(CreateEmpty:空のGameObject)を配置しているだけです。
Canvasは640x1136で、Boardは560x760です。
Camera等の設定は省きます。
Canvasには以下のScriptを追加します。
Blockの生成と破棄、タップ操作の管理、ピースが揃ったかどうかの確認、アニメーションなどを行なっています。
InspectorのBoardにはCanvas下層のBoardを、BlockPrefabにはBlockを設定してください。
ビルド
あとはビルドすることでCanvas > BoardにBlockが生成され、操作待ちになります。
処理の手順は以下になります。
- ピースの生成 → 2
- 揃っているか確認
揃っていた場合 → 3
揃っていない場合 → 6 - 揃っていたピースを消す → 4
- ピースを下に詰める
空いている場所には上から新たなピースを落とす → 5 - 移動後に再確認 → 2
- 移動するピースの選択待ち → 7
- ピースを移動して入れ替える
指が離されたら移動を確定 → 2
まとめ
パズルって単純なゲームなのに内部では色々なロジックが動いており面白いです。
結構出尽くしている感もありますがぜひオリジナルのパズルを作ってみてください。