Unity でのゲーム作りですが、プレイヤーを動かすことができるようになったけれど、画面が固定されていてプレイヤーを動かしているとフィールドからフレームアウトしてしまうという問題が出てきました。
今回はプレイヤーの移動に合わせてカメラを追従させる方法について勉強したので設定をまとめてみました。
やりたいこと
- 操作キャラクターにカメラを追従させたい
準備するもの
カメラ追従用に操作できるキャラクターの設定
操作用キャラクターの設定は、先日作成した以下のものを使用します。
a1026302.hatenablog.com
設定
スクリプト準備
「Main Camera」という GameObject にコンポーネントとして追加するスクリプトを作成します。
このスクリプトは、プレイヤー用の GameObject を指定すると、位置情報を取得して、その情報をカメラの位置情報に反映させるものです。以下のスクリプトを準備します。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class camera : MonoBehaviour { public GameObject player; // Use this for initialization void Start() { } // Update is called once per frame void Update() { Vector3 playerPos = player.transform.position; //カメラとプレイヤーの位置を同じにする transform.position = new Vector3(playerPos.x, playerPos.y, -10); } }
「Main Camera」というゲームオブジェクトにコンポーネント追加
「Camera(Script)」というコンポーネント追加
- 「Hierarchy」から[Main Camera]を選択します。
- 右側の[Inspector]から「Add Componet」をクリックして「Camera(Script)」というコンポーネントを追加します。
「Camera(Script)」コンポーネントに設定追加
- 追加した「Camera(Script)」というコンポーネントの[Player]という項目にキャラクターゲームオブジェクトして作成しておいた[Player]を追加します。
動作確認
プレイヤー移動に合わせてカメラが追いかけてくれるようになりました。