ゲームのシチュエーションでは、視点(カメラ)を固定せず、プレーヤーを追尾したい場面も出てきます。
MainCameraでプレーヤーを追いかける簡単なしくみをご紹介します。
関連記事:
カメラを旋回しながら自動追従させる
進行方向へ回転するプレーヤー操作2
Thrid Person Camera の設定
MainCameraがオブジェクトを追従
MainCameraで四方向から撮影
プレーヤーの動き
まずはプレーヤーに動きをつけましょう。
今回はCubeとPlaneを1つずつ用意しています。
わかりやすいように色をつけています。
Cubeに、CubeMove.csを作成して追加しましょう。
CubeMove.csを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update () { if (Input.GetKey (KeyCode.LeftArrow)) { this.transform.Translate (-0.1f,0.0f,0.0f); } if (Input.GetKey (KeyCode.RightArrow)) { this.transform.Translate (0.1f,0.0f,0.0f); } if (Input.GetKey (KeyCode.UpArrow)) { this.transform.Translate (0.0f,0.0f,0.1f); } if (Input.GetKey (KeyCode.DownArrow)) { this.transform.Translate (0.0f,0.0f,-0.1f); } } } |
プレイして、十字キー操作でCubeを動かしてみましょう。
一定距離を保つMainCamera
次は、MainCameraです。
Cubeに対して、一定の距離を保ちながら動くメインカメラを、作成していきます。
MainCameraに、CameraMove.csを作成して、追加しましょう。
CameraMove.csを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMove : MonoBehaviour { public GameObject target; private Vector3 distance; void Start() { distance = transform.position - target.transform.position; } void LateUpdate() { transform.position = target.transform.position + distance; } } |
MainCameraのインスペクターに、ターゲットフィールドができますので、ここにCubeオブジェクトを入れましょう。
プレイして、シーンビューを確認します。
ゲームビューを確認すると、このようにターゲットを追いかけて撮影しています。
関連記事:
カメラを旋回しながら自動追従させる
進行方向へ回転するプレーヤー操作2
Thrid Person Camera の設定
MainCameraがオブジェクトを追従
MainCameraで四方向から撮影