Unity3D – 使用 UnityChan 的簡易範例

      在〈Unity3D – 使用 UnityChan 的簡易範例〉中留言功能已關閉

建立一個專案

使用 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

然後按執行 :

執行結果 :

print