宇宙兵器 x タワーディフェンス x EDM!
ノリの良い変則的2.5Dタワーディフェンスゲーム『見敵必殺サテライト』の紹介ページ。
GooglePlayで177の国と地域で公開中!
(現在はGooglePlayから引っ込めました)
プレイ動画
前半ノーマルモード、後半ハードモードを一通りプレイした動画。
アセットストアで発掘した軽快なEDMを使用。
スクリーンショット
タイトル画面
メインで使用したアセットを別シーンに設置して弄くり回した物をスクショした。
メインゲーム画面 (ノーマルモード)
ノーマルモードでプレイ時のピーク。
一定までスコアを獲得して難易度が上昇し、3レーンになっている。
メインゲーム画面のショップ (ノーマルモード)
画面を切り替えず、スピーディーなプレイを阻害しないショップ画面(アイテム即時使用)。
リザルト画面 (ノーマルモード)
シンプルなリザルト画面。
背景が物足りないと感じたので、[PONETI] Classic RPG GUIのPaperの画像を使用。
(今作では、かなり多用している)
リワード広告モーダル画面
長々説明しなくても理解出来るであろう簡単な説明画面。
動画広告後のリワード獲得演出は、0.3秒程ディレイを入れないと何故か上手く機能しなかった。
(ゲームに制御が戻っていない?)
タイトル画面 (ハードモードアンロック時)
リワード広告を見たフラグをセーブしておいて、ボタンのアクティブ状態を切り替えている。
メインゲーム画面 (ハードモード)
バナー広告と手札部分の距離を放したら、肝心のゲーム画面の収まりが悪くなった。
手札部分を下部にしたら良かったかも。
リザルト画面 (ハードモード)
ハードモード時のシンプルリザルト画面。
中々のハイスコア。
制作Tips
タイトル画像
スクリーンショットのTips。
- モーションを止めたいタイミングで、対象のAnimatorを無効化するとその姿勢で止まる。
(実行を一時停止、コマ送りするとやり易い) - Particle SystemはSimulation Speedを低く設定すると、良い画を探し易い。
テンポを阻害しないショップ
Time.timeScale = 0にして、ポーズ。
ショップとしてまとめたオブジェクトをTime.unscaledDeltaTimeを使ったコルーチンでスライド。
メインゲーム画面から遷移しないので、プレイを邪魔しない設計になったと思う。
アイテムの購入ではコイン等の要素を増やさず、スコアを使用するという形を取った。
(リザルトで表示するスコアは減った分を無視したトータルスコア)
2.5D
2DアセットにBox Collider(3Dの当たり判定)を付けて使用。
カメラの傾きに合わせて、画像のみ角度を変えている。
(向きの切り替え時(左右)に注意)
ジャグ配列ベースの座標管理 (groundPosition[][]みたいな奴)
- GameManagerで地面を設置し、座標を保存。
- 敵キャラ生成時にgroundPosition[lineIndex].Count – 1のgroundIndexを設定。
- コルーチンで移動させ、移動完了時にgroundIndexに加算。
- ジャグ配列のIndexは、ジャグ配列[縦][横]なので注意。
イメージとしては、groundPosition[lineIndex][groundIndex]みたいな感じ。 - 地面プレハブは基準点が中心&表面になるようにズラすのを強く推奨。
(アイテム等も生成時にズラすのが手間なので、プレハブの時点で調整しておく)
敵キャラに衝突判定を行う場合の移動
- コルーチンのウェイト:WaitForFixedUpdate
- 移動:rigidBody.MovePosition
2次元配列では重くなる
2次元配列を使用すると重いらしいので注意。
以下、Unity公式。