Unity:背景と敵機のWaveを作成~公式チュートリアル 2Dシューティングに挑戦

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

前回の記事はこちら
Unity:敵の作成と当たり判定~公式チュートリアル 2Dシューティングに挑戦

背景を作る

チュートリアルページ:背景を作る
このステップの手順は次の通りです。

  1. 3枚の画像を表示させる
  2. Frontを作る
  3. MiddleとBackを作る
  4. 3枚の位置を調整する
  5. 背景をスクロールさせる

ゲーム画面の縦横比を変更する

チュートリアルではゲーム画面の縦横比が4:3で制作していますが、ここでは16:9に変更します。
Main Cameraを選択して [Inspector]ウィンドウ > Camera > Size を 3 に設定。

機体や弾が画面外に出たら消去するオブジェクト DestroyArea も同じく変更します。
DestroyArea を選択。 [Inspector]ウィンドウ > Box Collider 2D > Size > X 10.67 Y 6 に設定。

マテリアルを作る

チュートリアルではマテリアルがあらかじめ用意されている形で進んでいますが、プロジェクト内に見当たらなかったのでフォルダとマテリアルファイルを先に作成しました。

[Project]ウィンドウ > [Create]ボタン > Folder を選択。Materials フォルダを作成。
次に [Project]ウィンドウ > [Create]ボタン > Material を選択。3つのマテリアル(Background-Front、Background-Middle、Background-Back)を作成。

マテリアルのシェーダーは Unlit/Transparent に設定します。

マテリアルにテクスチャを割り当てます。
[Project]ウィンドウでマテリアルファイルを選択して、[Inspector]ウィンドウのテスクチャスロットを表示しておきます。[Project]ウィンドウ > Texturesフォルダのテクスチャを[Inspector]ウィンドウのテスクチャスロットにドラッグ&ドロップで割り当てます。

[Project]ウィンドウでテクスチャファイルをクリック選択後、うっかりマウスボタンから手を放してしまうと[Inspector]ウィンドウの表示内容が選択したテクスチャファイルの内容に切り替わってしまいます。

マテリアルが完成しました。

Frontを作る

背景オブジェクトのスケールも変更します。
Backgrounds > Front を選択して [Inspector]ウィンドウ > Transform > Scale X 10.67 / Y 6 / Z 0 に設定。

元のテクスチャが縦横比4:3の画像なので、縦横比16:9に変更した 背景オブジェクトに割り当てると横に引き延ばされますが、とりあえず今はこのままにしておきましょう。

背景をスクロールさせる

こちらの手順で作成するスクリプト Emitter にコメントを追加しました。

Wave型の仕組み作り

チュートリアルページ:Wave型の仕組み作り
このステップの手順は次の通りです。

  1. Waveの作成
  2. Waveを呼び出すEmitter (エミッター)を作成する

Waveの作成

ここの手順でチュートリアルでは左右の敵機の位置のX値は-1、1 となっていますが、ゲーム画面の縦横比変更に合わせて X-2.5と2.5 に変更しました。

プレハブの数が6つになりました。

Waveを呼び出すEmitter (エミッター)を作成する

こちらの手順で作成するスクリプト Emitter にコメントを追加けました。チュートリアルではスクリプトの処理については詳しく解説されていないので、配列の処理を理解するのに悩みました。

WebGL

ここまでの内容を動作確認用にWebGLでビルドしてみました。ちょっとゲームらしくなってきました。
画像クリックで再生(ファイルサイズ:約6MB)