ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Unityで2DRPGを作る - プレイヤーにカメラを追従させる方法

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]を追加します。

f:id:a1026302:20200907185310j:plain

動作確認

プレイヤー移動に合わせてカメラが追いかけてくれるようになりました。
f:id:a1026302:20200907185208g:plain