Unity:敵機のフォーメーションとスコアの実装~公式チュートリアル 2Dシューティングに挑戦

Unity公式サイトに掲載されているチュートリアルの2Dシューティングに挑戦。今回は敵機のフォーメーションとスコア実装のステップを行いました。チュートリアルを進めながら変更した箇所などをピックアップしています。

前回の記事はこちら
Unity:敵機のHPと弾の攻撃力とアニメーション~公式チュートリアル 2Dシューティングに挑戦

Waveを5個にする、スコアの実装

チュートリアルページ:Waveを5個にする、スコアの実装
このステップの手順は次の通りです。

  1. Waveの作成
  2. スコアの実装

敵機の種類を増やす

このチュートリアルの手順で作成する Wave のために敵機の種類を増やしました。

元のスプライト素材を改造して緑色と紫色の敵機を追加。

Sprite Editor で追加した敵機のスプライトを作成します。

チュートリアルの スプライトとスプライトアニメーションの作成 の手順を参考にアニメーションファイルを作成します。ファイル名はそれぞれ Normal_B、Normal_C に設定。同時に作成されたアニメーターファイルは使用しないので削除。

アニメーターファイル Enemy を複製して新しく作成した敵機に使用します。敵機の2種類作成したので2つ複製します。
[Product]ウィンドウ > Animations > Enemy > Enemy を選択。複製して名前を Enemy_B とEnemy_C に変更。

複製したアニメーターファイルのステートを修正します。
[Product]ウィンドウ > Animations > Enemy > Enemy_Bダブルクリックして [Animator]ウィンドウを開きます。 [Normal]ステートを選択して[Inspector]ウィンドウ > Motion フィールドに新しい敵機のアニメーションファイル Normal_B を割り当てます。

同じ手順でアニメータファイル Normal_C のステートも修正します。

プレハブ Enemy を複製して新しい敵機のプレハブを作成します。
プレハブ Enemy を[Hierarchy]ウィンドウに配置して複製。 名前を Enemy B に変更。[Inspector]ウィンドウ > Sprite Render > Sprite フィールドのスプライトを Spaceship_12(新しく追加した敵機のスプライト)に変更します。

[Inspector]ウィンドウ > Animator> Controller フィールドのアニメーターファイルを Enemy_B に変更します。

最後にオブジェクトを[Project]ウィンドウにドラッグ&ドロップでプレハブに変換して完了です。

同じ手順でプレハブ Enemy_C も作成。敵機のプレハブが3種類に増えました。

Waveの作成

先に追加した敵機のプレハブを組み合わせてこのような Wave を作成しました。

スコアの表示

チュートリアルでは GUIText コンポーネントを使用していますが、ここでは UIオブジェクトを使用します。
[Hierarchy]ウィンドウ > [Create]ボタン > UI > Text を選択。名前を Text Score に変更。

[Inspector]ウィンドウ > Rect Transform の設定はこのようにしました。

Text (Script)コンポーネントの設定はこのようにしました。文字整列の Paragraph > Alignment は右上寄せにしました。

ハイスコアのテキストは Text Score を複製(Ctrl キー+ D キー)して名前をText HighScore に変更します。

[Inspector]ウィンドウ > Rect Transform の設定はこのようにゲーム画面左上に配置しました。

Text (Script)コンポーネントの設定はこのようにしました。

[Scene]ビューで見るとこのようになっています。

スクリプトの作成

スクリプトのコードは GUIText コンポーネントを使用しないので UnityEngine.UI の使用を宣言して変数の型を Text に変更しています。

作成したスクリプト はオブジェクト Manager に割り当てました。

エネミーにポイントを持たせる

スクリプト Enemy の内容にコメントを加えたものがこちら。

ハイスコアの保存

スクリプト Manager の内容にコメントを加えました。ここではチュートリアルと異なりコルーチン IEnumerator ShowGameOver() の処理でハイスコアの保存を行っています。

WebGL

ここまでの内容を動作確認用にWebGLでビルドしてみました。チュートリアルではまだモバイル編の手順がありますが、これで一通り完成です。
画像クリックで再生(ファイルサイズ:約7MB)