實現相機平滑跟隨物體移動


  有時候我們在做第三人稱游戲的時候,想讓相機平滑的跟隨物體移動,下面這些代碼就能很快達到這個效果

    

using UnityEngine;
using System.Collections;

public class CameraMover : MonoBehaviour 
{
    public Transform follow;//目標的tansform
    public float distanceAway = 5.0f;//表示距離目標后方的距離
    public float distanceUp=2.0f;//目標上方的高度
    public float smooth = 1.0f;//插值系數
    private Vector3 camPosition;//目標的位置
    void LateUpdate()
    {
        //計算出相機應該在的位置
        camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway;
        //插值到相機應該的位置
        transform.position=Vector3.Lerp(transform.position,camPosition,smooth*Time.deltaTime);

        //一個tranform中的函數,用於使一個物體正對着目標
        transform.LookAt(follow);//理解成看着目標

    }
}

   這里插入一張圖便於理解

  

 

  如果想改變相機的朝向,可以通過直接改變

  

camPosition = follow.position + Vector3.up * distanceUp - follow.forward*distanceAway;句中的follow.forward的值,

比如說可以把
public float distanceAway = 5.0f;改成-5.0f則使攝像機正對着物體。如果想從側邊觀看,則改變為follow.right即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM