建立一個專案
使用 Asset Store 下載 Make Your Fantasy Game – Lite
匯入之後找到 Demo 6 場景點兩下載入
畫面便會顯示成這樣 :
接著使用 Asset Store 下載 Unity Chan 匯入
拖拉 UnityChan > Prefabs > for Locomotion 底下的 unitychan
陰影是因為角色沒光線導致暗的,所以加入一個光源
GameObject > Light > Directional Light
現在執行你會發現角色跟 Camera 各跑各的
將 Camera 設定成 MainCamera
在 Asserts 建立新的資料夾,命名為 Scripts
Scripts 資料夾底下,增加 CameraFollow.cs (Orz 忘記從哪裡抄來的程式碼了)
using UnityEngine; using System.Collections; //添加到 Component 選單 [AddComponentMenu("CameraControl/Follow")] public class CameraFollow : MonoBehaviour { //攝影機的高度距離 public float camera_height = 10.0f; //攝影機的水平距離 public float camera_distance = 10.0f; public Transform player; private Transform m_camera; void Start() { //如果找不到攝影機,請到Camera 把 Tag 設定為 main m_camera = Camera.main.transform; } void Update() { m_camera.LookAt (player); //轉向主角 //y軸轉向(變成主角在面前) m_camera.eulerAngles = new Vector3(m_camera.eulerAngles.x, player.eulerAngles.y, m_camera.eulerAngles.z); //取得y角度 float angle = m_camera.eulerAngles.y; //根據角度計算距離差 float deltaX = camera_distance * Mathf.Sin(angle * Mathf.PI / 180); float deltaZ = camera_distance * Mathf.Cos(angle * Mathf.PI / 180); m_camera.position = new Vector3(player.position.x - deltaX, player.position.y + camera_height, player.position.z - deltaZ); } }
回到 Camera 把 Camera Move 的 Script 取消掉
然後使用 Component 選擇 CameraControl > Follow
拖拉 unitychan 到 Player
然後按執行 :
執行結果 :