首先在Unity場景中主攝像機上綁定一個腳本,在這裏我綁定的是CameraFollow.cs的一個腳本,然後打開腳本,並複製以下的代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour {
private Transform target;
private Vector3 offset;
private Vector2 velocity;
private void Update()
{
if (target == null && GameObject.FindGameObjectWithTag("Player") != null)
{
//查找目標tag標籤爲Player遊戲物體的位置值
target = GameObject.FindGameObjectWithTag("Player").transform;
//計算出目標點到攝像機位置的偏移值
offset = target.position - transform.position;
}
}
private void FixedUpdate()
{
if(target != null)
{
//平滑緩衝,遊戲物體不是僵硬的移動而是做減速緩衝運動到指定位置
float posX = Mathf.SmoothDamp(transform.position.x,
//target.position.x - offset.x等於主攝像機的位置座標
target.position.x - offset.x, ref velocity.x, 0.05f);
float posY = Mathf.SmoothDamp(transform.position.y,
target.position.y - offset.y, ref velocity.y, 0.05f);
//防止很大弧度的屏幕抖動
if (posY > transform.position.y)
{
transform.position = new Vector3(posX, posY, transform.position.z);
}
}
}
}
注意:讓攝像機跟隨的遊戲物體標籤一定要設置爲Player!