メインカメラがオブジェクトを追従するしくみを作ってみましょう。
今回の例ではSetParentを使い、MainCameraがプレーヤーの子オブジェクトになるように、スクリプトを作成します。
関連記事:
一定距離を保って動くMainCameraをつくる
MainCameraにアクセスするスクリプト
キーを押すたびにカメラアングルを切り替え
ぶつかればカメラをズームアップ
移動と発射・MainCamera追従を組合わせる
カメラを旋回しながら自動追従させる
レイヤーによるMainCameraの非表示
プレーヤーについていくカメラ
MainCameraで四方向から撮影
ターゲットの子オブジェクトになる
PlaneとCubeを作成。
Cubeは地上に出しておきます。
まずはCubeを動かすスクリプトから作成します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { if(Input.GetKey("up")) { transform.position += transform.forward * 0.03f; } if(Input.GetKey("down")) { transform.position += transform.forward * -0.03f; } if(Input.GetKey("right")) { transform.Rotate(0,2,0); } if(Input.GetKey("left")) { transform.Rotate(0,-2,0); } } } |
このスクリプトで、Cubeをキー操作によって動かすことができます。
続いて、CameraScript.csを作成し、MainCameraに追加します。
CameraScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraScript : MonoBehaviour { [SerializeField] GameObject target; void Start() { transform.SetParent(target.gameObject.transform); } } |
MainCameraを選択し、ターゲットのフィールドに、Cubeオブジェクトを入れます。
ゲームプレイして、Cubeを十字キーで操作しましょう。
スタートすると、MainCameraはCubeの子オブジェクトになります。
親であるCubeの動きに応じて、MainCameraが移動するようになります。
関連記事:
一定距離を保って動くMainCameraをつくる
MainCameraにアクセスするスクリプト
キーを押すたびにカメラアングルを切り替え
ぶつかればカメラをズームアップ
移動と発射・MainCamera追従を組合わせる
カメラを旋回しながら自動追従させる
レイヤーによるMainCameraの非表示
プレーヤーについていくカメラ
MainCameraで四方向から撮影