Unity事例ノート

UNITY

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

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

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

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

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

オブジェクトの用意

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

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

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

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

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

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

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

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

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

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

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

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

プレーヤーを動かす

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

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

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

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

プレイしてみましょう。

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

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