無料で入手出来て、自作ブロック崩しの参考に使える!
Unityアセットストアから、3種類のテンプレートを豊富な画像と共に紹介。
Unityバージョン 2019.4.1f1で動作確認済み。
[Daniel Buckley] Block Breaker Template
特徴
モノクロでシックな雰囲気の、スタイリッシュブロック崩し。
カジュアルゲームっぽい雰囲気を持っている。
パドルの当たる位置によって、ボールの移動反転ベクトルが変わる。
習得難度
ブロック崩しは、入門の題材として選ばれる程、非常にシンプルな物。
その為か、6個のスクリプトと、小規模な範囲で収めているので、読み解き易い。
拡張性
インスペクターから以下の要素を変更出来る。
- ブロックの配置数 (X, Y)
- ボールのスピード、スピード上限、加速度
- パドルのスピード、スピード上限、移動可能範囲
*何故かボールの移動可能範囲は、変数として扱っていなかった。
含まれるシステム
- タイトルメニュー画面
- メインのブロック崩しシステム
一応インポート時の注意
名前空間が設定されていない為、GameManagerや、Ball等と命名したスクリプトがあると名前が衝突する。
プロジェクトの設定も上書きされる為、出来るだけ新規のプロジェクトにインポートする。
起動時に直ぐクリアになるがバグではない
余所見をしながら起動した時に、数秒でクリアとなって混乱した。
ブロックの初期配置数が2個で、初回のボールの跳ね返しで、2枚抜きになった為、発生。
ブロックの配置数は増やせるが、ボールの移動制限範囲に注意
ブロックの配置数は可変だが、ボールの移動制限がある。
その為、通常設定では、縦6、横8までしか当たらない。
パドルの移動可能範囲の変更
- ヒエラルキーのPaddleを選択。
- インスペクター -> Paddleコンポーネント -> Min XとMax Xの値を変える事で変更可能。
ボールの移動可能範囲の変更
ボールの移動制限は、インスペクターから設定出来るようになっていない。
なので、コードから変更する。
何故か変数ではなく、リテラル(コードに直接数値が記入されている)。
- Assets -> BlockBreakerTemplate -> Scripts -> Ballスクリプトを開く。
- Updateメソッド内のif文で比較している数値を書き換える(変数化すると尚良い)。
何故かUIの表示順がブロックより奥なので修正
スコア等のUIがブロックより後ろの表示になってしまっているので直す。
- ヒエラルキー -> Camera -> Canvasを選択。
- Canvasコンポーネント -> Order in Layerの値を1に変更。
[SgLib Games] Spin Breakout
特徴
中央の球体を、自動回転するパドルを使って、ボールから守るという、基本のブロック崩しを魔改造した物。
ボールに軌跡のエフェクトが掛かって、スタイリッシュな感じ。
ワンタップでパドルの回転を反転させるという、カジュアルな操作システム。
耐久性のあるブロックが通常搭載。
起動時の画面サイズに応じて、動的にボールの移動可能範囲が決まる。
基本は、縦向き画面を想定していると思われる。
一応、横向き画面でもプレイ出来るが、移動可能範囲が広くなり過ぎる為、冗長なゲーム性になる。
習得難度
34個のスクリプトと、結構な数なので、全容を掴むのは難しい。
参考にしたい関連部分のスクリプトを、ピンポイントで見るのが良い(名前で判断)。
拡張性
以下をインスペクターから変更可能。
- ブロックの色の変更
- ボールの攻撃力
- パドルの移動速度
- デイリーリワードの値(Min、Max)と、インターバル
- スコアの自動更新の切り替えと、リーダーボード名の設定
- トロフィーの自動更新の切り替えと、トロフィーの設定
- シェア有効の切り替えと、シェアメッセージと、画像名の設定
- ゲーム評価の設定
- 戻るボタンを押した時に出すダイアログの設定
- 音声の設定
- 初期コインと現在のコインの設定(未使用?)
- ターゲットFPSの設定
Easy Mobile Proを導入しないと使用不可能な機能
以下は、余所の有料アセットEasy Mobile Proを導入して、プレミアム設定を有効にすると使える。
- ランキング
- 画像共有(PNG、GIF)
- 広告削除
- セーブデータの初期化
含まれるシステム
- BGM
- SE
- メインのブロック崩しをアレンジしたシステム
- 一時停止ボタン
- メインメニュー
- ランキング(Easy Mobile Proが必要)
- トロフィー
- 設定
- BGM切り替え
- SE切り替え
- 評価(Easy Mobile Proが必要)
- Twitterフォロー(設定したUser名のURLを開く)
- 広告除去(Easy Mobile Proが必要)
- セーブデータ初期化(Easy Mobile Proが必要)
- 画像共有(GIF、PNG)(Easy Mobile Proが必要)
一応インポート時の注意
プロジェクトの設定の変更が含まれるので、出来るだけ空のプロジェクトにインポートする。
名前空間は設定されている為、名前の衝突の心配はない。
[Danar Kayfi] 2D Breakout Example Project
特徴
フォルダやスクリプトの命名が独特。
逆に名前が衝突しないので良いといえば良い。
パドルの移動に独特の慣性があるので、操作性に癖がある。
ボールの移動反転処理が、物理ベースなので、序盤に真正面に反射してしまう。
その辺は、若干の手直しが必要(物理ベースに則るなら、パドルに傾斜を付けると良い)。
習得難度
5つのスクリプトと、シンプルな構成で、読み解き易い。
拡張性
- ブロック破壊時のスコア
- 移動可能範囲
- ボールの初期加速度
ブロックの配置は、動的に生成しておらず、インスペクターからの拡張は対応していない。
ブロック破壊時の獲得スコアは、ブロックのインスペクターから変更出来る。
移動制限範囲は、コードでなく障害物を設置する事で実装している。
ヒエラルキー -> Borders下の各種Borderの位置を調整する事で変更可能。
ボールのインスペクターから、初期加速度を変更出来る。
含まれるシステム
- メインのブロック崩しシステム
- SE
UIの表示順がブロックより奥なので修正
プロジェクト設定がインポートに含まれていないので、Sorting Layerが<unknown layer>になっている。
その為、表示順がブロックより後ろになってしまっている。
- ヒエラルキー -> Canvasを選択。
- Canvasコンポーネント -> Order in Layerの値を1に変更。
稀に、ブロックと衝突しても跳ね返らないバグ
ボールの端にかするように当たると、移動ベクトルが反転せずに貫通弾のような動作になる場合も。
ボールのベクトル反転処理の判定辺りを見直す必要がある。