Related Posts Plugin for WordPress, Blogger...

1-2 A Simple DIY Follow Camera

首先,建立一個Empty Gameobject,取名為Camera Arm,並將目前場景上的Main Camera移到Camera Arm之下。然後,自己移動相機對準角色人物,右下角會有一個小框框來提示你從相機看到的模樣。


註:一定要記得Camera Arm的Position要設為0,可以按下介面右上角的齒輪按鈕,有一Reset選項。

 接著在Camera Arm新增一個Script,取名為CameraFollow。

再來,將ThirdPersonController的名稱改為Player。進行到這一步,是因為待會會讓相機跟著這位Player移動。


然後,有一個Tag屬性,選擇Unity已經內建好的Player。


接下來,開始寫Script啦!
在撰寫CameraFollow之前,請先了解一下LateUpdate是什麼:

Update和LateUpdate的区别 - 赵青青 - 博客园

Update、FixedUpdate 和 LateUpdate 的区别

官方對於LateUpdate說明如下:
LateUpdate is called after all Update functions have been called. This is useful to order script execution. For example a follow camera should always be implemented in LateUpdate because it tracks objects that might have moved inside Update.

簡言之,由於Camera要跟著角色移動而移動,跟著角色旋轉而旋轉,當這些角色運動都在Update執行後,理所當然地,要等到所有運動都結束以後,再來決定Camera要移動到哪裡。而LateUpdate就是在所有Update執行完以後才會執行,是撰寫Follow Camera的好地方!

好的!以下程式碼上菜!


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour {

 GameObject player;

 // Use this for initialization
 void Start () {
  //從場景中尋找Player物件,用String的寫法不漂亮,不過沒關係,後面再改善
  player = GameObject.FindGameObjectWithTag ("Player");
  //使用print可以從UnityConsole畫面中看測試結果,若沒找到Player會出現null
  print (player);
 }
 
 void LateUpdate () {
  //跟隨Player的位置移動
  transform.position = player.transform.position;
 }
}

留言