一,攝像機只跟隨角色移動
二,攝像機移動時,是平緩移動的
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CmeraFollow : MonoBehaviour { public Transform m_playerTransform; //設定一個角色能看到的最遠值 public float Ahead; //設置一個攝像機要移動到的點 public Vector3 targetPos; //設置一個緩動速度插值 public float smooth; void Start () { //獲取當前角色的transform //m_playerTransform = GameObject.Find("player").GetComponent<Transform>(); } // Update is called once per frame void Update () { //this.transform.position = new Vector3(m_playerTransform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); targetPos = new Vector3(m_playerTransform.position.x, gameObject.transform.position.y, gameObject.transform.position.z); if (m_playerTransform.position.x > 0f) { targetPos = new Vector3(m_playerTransform.position.x + Ahead, gameObject.transform.position.y, gameObject.transform.position.z); } else { targetPos = new Vector3(m_playerTransform.position.x - Ahead, gameObject.transform.position.y, gameObject.transform.position.z); } transform.position = Vector3.Lerp(transform.position, targetPos, smooth * Time.deltaTime); } }