C#
Unity

Playerに追従するカメラ

More than 3 years have passed since last update.

Playerタグが付いているオブジェクトを追従するカメラ

最初にカメラとプレイヤーの位置の差分を計算しておき,プレイヤーとの位置を保ち続ける。


using UnityEngine;
using System.Collections;

public class CameraControl : MonoBehaviour {

private GameObject player = null;
private Vector3 offset = Vector3.zero;

void Start () {
player = GameObject.FindGameObjectWithTag("Player");
offset = transform.position - player.transform.position;
}

void LateUpdate () {
Vector3 newPosition = transform.position;
newPosition.x = player.transform.position.x + offset.x;
newPosition.y = player.transform.position.y + offset.y;
newPosition.z = player.transform.position.z + offset.z;
transform.position = newPosition;
}
}

カメラの移動をスムーズにしたいときは,LateUpdate内の

transform.position = newPosition;

この部分をこのようにする。

transform.position = Vector3.Lerp(transform.position,newPosition,5.0f * Time.deltaTime);