【Unity無料アセット】ブロック崩しの参考に出来るテンプレートの紹介

【Unity】ブロック崩しの無料テンプレート3種類

無料で入手出来て、自作ブロック崩しの参考に使える!
Unityアセットストアから、3種類のテンプレートを豊富な画像と共に紹介。

Unityバージョン 2019.4.1f1で動作確認済み。

[Daniel Buckley] Block Breaker Template

Block Breaker Templateのデモのゲームプレイ2

特徴

モノクロでシックな雰囲気の、スタイリッシュブロック崩し。
カジュアルゲームっぽい雰囲気を持っている。

パドルの当たる位置によって、ボールの移動反転ベクトルが変わる。

習得難度

ブロック崩しは、入門の題材として選ばれる程、非常にシンプルな物。
その為か、6個のスクリプトと、小規模な範囲で収めているので、読み解き易い。

拡張性

インスペクターから以下の要素を変更出来る。

  • ブロックの配置数 (X, Y)
  • ボールのスピード、スピード上限、加速度
  • パドルのスピード、スピード上限、移動可能範囲

*何故かボールの移動可能範囲は、変数として扱っていなかった。

含まれるシステム

  • タイトルメニュー画面
  • メインのブロック崩しシステム

一応インポート時の注意

名前空間が設定されていない為、GameManagerや、Ball等と命名したスクリプトがあると名前が衝突する。

プロジェクトの設定も上書きされる為、出来るだけ新規のプロジェクトにインポートする。

起動時に直ぐクリアになるがバグではない

余所見をしながら起動した時に、数秒でクリアとなって混乱した。
ブロックの初期配置数が2個で、初回のボールの跳ね返しで、2枚抜きになった為、発生。

ブロックの配置数は増やせるが、ボールの移動制限範囲に注意

ブロックの配置数は可変だが、ボールの移動制限がある。
その為、通常設定では、縦6、横8までしか当たらない。

パドルの移動可能範囲の変更

  1. ヒエラルキーのPaddleを選択。
  2. インスペクター -> Paddleコンポーネント -> Min XとMax Xの値を変える事で変更可能。

ボールの移動可能範囲の変更

ボールの移動制限は、インスペクターから設定出来るようになっていない。
なので、コードから変更する。

何故か変数ではなく、リテラル(コードに直接数値が記入されている)。

  1. Assets -> BlockBreakerTemplate -> Scripts -> Ballスクリプトを開く。
  2. Updateメソッド内のif文で比較している数値を書き換える(変数化すると尚良い)。

何故かUIの表示順がブロックより奥なので修正

スコア等のUIがブロックより後ろの表示になってしまっているので直す。

  1. ヒエラルキー -> Camera -> Canvasを選択。
  2. Canvasコンポーネント -> Order in Layerの値を1に変更。

[SgLib Games] Spin Breakout

Spin Breakoutのデモのゲームプレイ1
Spin Breakoutのデモの設定画面

特徴

中央の球体を、自動回転するパドルを使って、ボールから守るという、基本のブロック崩しを魔改造した物。
ボールに軌跡のエフェクトが掛かって、スタイリッシュな感じ。

ワンタップでパドルの回転を反転させるという、カジュアルな操作システム。

耐久性のあるブロックが通常搭載。

起動時の画面サイズに応じて、動的にボールの移動可能範囲が決まる。
基本は、縦向き画面を想定していると思われる。
一応、横向き画面でもプレイ出来るが、移動可能範囲が広くなり過ぎる為、冗長なゲーム性になる。

Spin Breakoutのデモのゲームプレイ2(横向き画面)

習得難度

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

2D Breakout Example Projectのデモのゲームプレイ

特徴

フォルダやスクリプトの命名が独特。
逆に名前が衝突しないので良いといえば良い。

パドルの移動に独特の慣性があるので、操作性に癖がある。

ボールの移動反転処理が、物理ベースなので、序盤に真正面に反射してしまう。
その辺は、若干の手直しが必要(物理ベースに則るなら、パドルに傾斜を付けると良い)。

習得難度

5つのスクリプトと、シンプルな構成で、読み解き易い。

拡張性

  • ブロック破壊時のスコア
  • 移動可能範囲
  • ボールの初期加速度

ブロックの配置は、動的に生成しておらず、インスペクターからの拡張は対応していない。
ブロック破壊時の獲得スコアは、ブロックのインスペクターから変更出来る。

移動制限範囲は、コードでなく障害物を設置する事で実装している。
ヒエラルキー -> Borders下の各種Borderの位置を調整する事で変更可能。

ボールのインスペクターから、初期加速度を変更出来る。

含まれるシステム

  • メインのブロック崩しシステム
  • SE

UIの表示順がブロックより奥なので修正

プロジェクト設定がインポートに含まれていないので、Sorting Layerが<unknown layer>になっている。
その為、表示順がブロックより後ろになってしまっている。

  1. ヒエラルキー -> Canvasを選択。
  2. Canvasコンポーネント -> Order in Layerの値を1に変更。

稀に、ブロックと衝突しても跳ね返らないバグ

ボールの端にかするように当たると、移動ベクトルが反転せずに貫通弾のような動作になる場合も。
ボールのベクトル反転処理の判定辺りを見直す必要がある。

タイトルとURLをコピーしました