Unity中讓攝像機自動跟隨主角進行移動

首先在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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章