1-2 A Simple DIY Follow Camera
首先,建立一個Empty Gameobject,取名為Camera Arm,並將目前場景上的Main Camera移到Camera Arm之下。然後,自己移動相機對準角色人物,右下角會有一個小框框來提示你從相機看到的模樣。
再來,將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; } }
留言
張貼留言