前回記事の、円状の動きについて、これを追尾するカメラをつくってみましょう。
追尾するカメラについては、カメラの自動追従 でもご紹介していました。
今回は、ターゲットの向きに応じて、カメラ自体も旋回させるように制作していきます。
関連記事:
ナビメッシュエージェントを使った追尾機能
キーを押すたびにカメラアングルを切り替え
ぶつかればカメラをズームアップ
MainCameraがオブジェクトを追従
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
円を描くように移動する
プレーヤーについていくカメラ
MainCameraの回転量をドラッグで変える
追従したいオブジェクト情報を取得
追従している様子がわかりやすいように、平面オブジェクトを入れました。
MoveCamera.csを作成し、MainCameraに追加しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveCamera : MonoBehaviour { GameObject target; Vector3 targetPos; void Start () { //追尾目的のオブジェクトを見つけて情報を取得 target = GameObject.Find("Robo2"); } void Update() { //Robot2が移動した分、カメラも移動 transform.position += target.transform.position - targetPos; targetPos = target.transform.position; //Robo2を中心にYを軸として回転 transform.RotateAround(targetPos, Vector3.up, 50.0f * Time.deltaTime); } } |
実行しましょう。
シーンビューを上部から確認すると、カメラ自体が回転しながら、追尾しています。
ゲームビューはこのように見えています。
transform.RotateAroundには、中心点、軸、回転角度、を順に書いていきます。
中心点には、追いかけたいオブジェクトを設定しましょう。
関連記事:
ナビメッシュエージェントを使った追尾機能
キーを押すたびにカメラアングルを切り替え
ぶつかればカメラをズームアップ
MainCameraがオブジェクトを追従
キャラクターを円状に動かす方法1
キャラクターを円状に動かす方法2
ターゲットの周囲を円形に移動する
円を描くように移動する
プレーヤーについていくカメラ
MainCameraの回転量をドラッグで変える