Unity事例ノート

UNITY

移動と発射・MainCamera追従を組合わせる

プレーヤーをゆっくり移動・回転させて、ボール発射。

カメラの視界を常にプレーヤーに追従させてみましょう。

今回は、以下3つの事例をミックスさせて、完成させています。

【Unity C#】約1秒間かけて90°回転
【Unity C#】約1秒かけてゆっくり移動する
【Unity C#】プレーヤーの前から発射する
【Unity C#】キャラクターコントローラーに発射機能





ゆっくりとした移動と回転

PlayerのオブジェクトをCubeで作成し、位置(X,Y,Z)をすべて0にします。

移動と回転は1つのスクリプトにまとめて書きましょう。

PlayerManager.csを作成し、Plyaerに追加します。

PlayerManager.csを書いていきます。

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

メインカメラの視界を合わせる

カメラが固定されているため、ゲームの操作性があまり良くありません。

カメラとPlayerの動きを一緒にして、操作性を上げてみましょう。

ゲームビューを見ながら、MainCameraの位置を調整しましょう。

ここでは、MainCameraの位置と回転をこのように設定しました。

MainCameraをPlyaerにドラッグ&ドロップしましょう。

MainCameraをPlyaerに親子関係ができます。

動きが確認しやすいように、平面オブジェクトを置きました。

プレイしてみましょう。

カメラの視界とプレーヤーが一緒に動きます。

これでゲームの操作性も良くなりました。

動きながら発射する

発射ついては、以下の記事をご覧ください。

【Unity C#】プレーヤーの前から発射する
https://futabazemi.net/notes/unity-front_shot/

動きながらの発射は、プレーヤーの前にボールを生成する必要があります。

空のオブジェクト(GameObject)をプレーヤーの前方に配置。

Playerにドラッグ&ドロップして、親子関係をとります。

BallShot.csを作成して、GameObjectに追加。

ボールのPrefabデータを用意します。

リジッドボディを追加し、重力を使用(UseGravity)はチェックを外します。

GameObjectのインスペクターを確認します。

BallPrefabフィールドには、Prefabデータを入れます。

速度フィールドは自由に入力してください。

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

動きながら、Spaceキーでボールを発射します。