Unity事例ノート

UNITY

自機狙い(プレーヤーに向けた)発射 -3Dゲーム

敵からプレーヤーに向かって、弾を発射するしくみをつくってみましょう。

敵の向きは常にプレーヤーにセットされいて、1秒おきにボールが発射されます。

3Dシューティングや、ミサイルを使ったゲームなど、幅広く活用できそうですね。

関連記事:
【Unity C#】ボールをキャッチして投げ返す
【Unity C#】キャラクターコントローラーに発射機能
【Unity C#】3D空間でプレーヤーを追いかけるオブジェクト
【Unity C#】空間の中でクリックした位置へ行く

オブジェクトの用意

ある程度の距離を取って、2つのオブジェクトを用意しました。

青色がPlayer、赤色がEnemyです。

ボールのPrefabデータをつくり、リジッドボディを追加します。

UseGravity(重力を使用)はチェックを外しています。

自機狙いの発射スクリプト(3D)

EnemyShot.csを作成し、Enemyに追加します。

コードは以下のように書きました。

while (true)で無限ループ状態にして、1秒おきに弾を生成します。

敵の向いている方向は、常にプレーヤーにロックオンしています。

PlayerフィールドにはPlayerオブジェクト、Ballフィールドには、Ballのプレハブを入れましょう。

プレイして動きを確認します。

1秒間隔で、プレーヤーを狙って弾を撃っています。

プレーヤーを動かす

ここまで、自機狙いのしくみは出来あがりました。

あとはプレーヤーを動かせるようにしましょう。

PlayerMove.csを作成し、Playerに追加。

コードは次のように書きました。

プレイしてみましょう。

プレーヤーに向けたボール発射が完成しました。

関連記事:
【Unity C#】ボールをキャッチして投げ返す
【Unity C#】キャラクターコントローラーに発射機能
【Unity C#】3D空間でプレーヤーを追いかけるオブジェクト
【Unity C#】空間の中でクリックした位置へ行く