Unity事例ノート

UNITY

敵に当たるとスコアを加点-2Dシューティング

2Dゲームで、ミサイルが当たったときにスコアが表示される仕組みをつくってみましょう。

発射したレーザーミサイルが敵にぶつかると、Scoreが加点され、ミサイルも削除されます。

関連記事:
クリックでミサイルを発射-2Dシューティング
2Dゲームで画面端から外へ移動させない
Prefabに触れると得点が入る
点数をテキスト表示
TextMeshProをスクリプトで表示
ハイスコアをつくる
ゴールすれば花火を打ち上げる
点数によるABC評価ランク

TextMeshProの準備

※この章は、クリックでミサイルを発射-2Dシューティングを作成してから進めてください。

今回はTextMeshProを使って、作成します。

TMP Importの画面が出ますので、Import TMP Essentialsをクリックしましょう。

Textを下の方に配置し、SCORE:0 を入れておきます。

Canvasを選択し、UIスケールモード > 画面サイズに拡大にします。

ゲームの画面サイズに合わせて、テキストサイズが自動調整されます。

ゲームビューではこのように表示されています。

敵キャラの準備

敵キャラのオブジェクトを作成しましょう。

今回も、ギャラクシア2Dスペースシュータースプライトパック#1 のフリーアセットを使用しています。

大きさを5倍にしました。

2Dサークルコライダーを追加し、コライダーのサイズを、敵キャラに合わせます。

2Dリジッドボディを追加し、ボディタイプはキネマティックに変更します。

Enemyという名前でタグをつけておきます。

敵キャラをプレハブ化します。

プレハブの元データは削除しておきましょう。

敵キャラのランダム生成

続いて、敵キャラを1秒おきにランダム出現させます。

空のオブジェクトを作成します。

GameManager.csを作成し、GameObjectに追加します。

GameManager.csを記述します。

ScoreText、Enemyのフィールドに、それぞれのオブジェクトを入れます。

ミサイル側のスクリプト

続いて、ミサイル側の設定を行います。

カプセルコライダーを追加し、サイズを調整。

トリガーにするにチェックを入れます。

ミサイル側のスクリプトを追記します。

LaserMove.csを開いて追記します。

*ここで追記した箇所にはコメント(//)を入れています。

ゲームプレイしてみましょう。

WASDキーで移動、クリックで発射。

敵キャラに当たればスコアが加点されて、ミサイルと敵キャラが消えます。

関連記事:
クリックでミサイルを発射-2Dシューティング
2Dゲームで画面端から外へ移動させない
Prefabに触れると得点が入る
点数をテキスト表示
TextMeshProをスクリプトで表示
ハイスコアをつくる
ゴールすれば花火を打ち上げる
点数によるABC評価ランク

SCHOOL教室案内