devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

Unity3D:ゲーム制作-無限インベーダ(2/4)の続きです

砲台のセットアップ

作成済みの砲台をシーンに追加し、上矢印キーを押したらミサイルが発射されるようにします。

Assetsの砲台(Battery)をHierarchyへドラッグ・アンド・ドロップして追加します。
TransformのPositionは(0,-7,0)に設定します。

infiniteInvader3

砲台は画面の下の方に表示されます。


砲台のスクリプトの変更

上矢印を押したらミサイルが発射されるようにスクリプトを変更します。

10行目:ミサイルのプレハブ設定用
29-31行目:上矢印キーが押されたら自身の位置にミサイルを追加する。

inspectorBattery

InspectorでBattery(Script)のMissileへ予め作成してあるMissile(プレハブ)を設定します。

これで、砲台が左右矢印キーを押していると左右に動き、上矢印キーを押すとミサイルが発射されるようになります。

ゲームコントローラの作成

次にゲームを管理するためのコントローラを作成します。

今回のゲームにおけるコントローラの役割は

・開始時にランダムな位置に3つのインベーダを表示する。
・インベーダの残り数を管理する。
・全てのインベーダが消えたら、開始時と同様にインベーダを表示する。

です。

メニューGameObject-CreateEmptyを選択して、HierarchyにGameObjectを追加します。
GameObjectの名前をGameControllerに変更します。

AssetsにC#スクリプトを追加して、名前をGameControllerに設定します。

5行目:インベーダのプレハブ設定用
6行目:インベーダの残り数
13-21行目:ゲーム開始/再開始時に呼ばれる。インベーダの残り数を3つに設定し、画面へインベーダを追加する。
23-30行目:インベーダが消滅した時に呼ばれる関数。残りインベーダ数をデクリメントして、ゼロになったらゲームを再開始する。

作成したスクリプト(GameController.cs)をHierarchyのGameControllerへ追加します。

InspectorでGameController(Script)のInvaderへ予め作成してあるInvader(プレハブ)を設定します。

ここまででコンテンツは以下のようになりました。

開始時にインベーダが3つ画面に表示され、砲台は左右に動くしミサイルも撃てる。ただし、ミサイルがインベーダにあたってもインベーダが消える気配がない・・・。ミサイルがインベーダを突き抜けていくのもちょっと・・・。

衝突判定の設定がまだ足りてません。もう少し・・・。

Unity3D:ゲーム制作-無限インベーダ(4/4)へ続く

Pocket

コメントを残す

Trackback URL: