Unity 用鍵盤上下左右實現攝影機移動


建立時間: 2023年1月2日 08:18
更新時間: 2023年1月2日 08:20

說明

在《深入淺出 C# 4/e》的 Unity 實驗室 #6 場景導航,裡面有一個腳本是用來控制攝影機的,這也是我第一次控制攝影機,雖然用起來很粗糙,但裡面程式很簡單,很適合新手學習。

腳本

這個腳本主要是用來拍攝玩家,然後可以旋轉、拉近拉遠,原本書中玩家可以透過滑鼠點擊畫面的地板,讓玩家可以移動到此位置,但本篇只是想分享攝影機的功能,所以大家可以隨便建立一個物件當作玩家,體驗一下控制攝影機的感覺。

MoveCamera.cs

using UnityEngine;

public class MoveCamera : MonoBehaviour
{
    [SerializeField]
    private Transform Player;
    /// <summary>
    /// 控制旋轉的速度
    /// </summary>
    [SerializeField]
    private float Angle = 3F;
    /// <summary>
    /// 控制拉近拉遠的速度
    /// </summary>
    [SerializeField]
    private float ZoomSpeed = 0.25F;

    // Update is called once per frame
    void Update()
    {
        // 取得滾輪滾動換算的數值
        float scrollWheelValue = Input.GetAxis("Mouse ScrollWheel");
        transform.position *= 1F + scrollWheelValue * ZoomSpeed;

        // 取得鍵盤輸入
        if (Input.GetKey(KeyCode.DownArrow))
        {
            // 繞著玩家旋轉
            transform.RotateAround(Player.position, Vector3.left, Angle);
        }
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.RotateAround(Player.position, Vector3.down, Angle);
        }
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.RotateAround(Player.position, Vector3.up, Angle);
        }
        else if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.RotateAround(Player.position, Vector3.right, Angle);
        }
        // 看著玩家
        transform.LookAt(Player.position);
    }
}

將腳本加到攝影機的遊戲物件,然後將玩家物件拉到 Player 欄位,啟動遊戲後,使用上下左右鍵旋轉攝影機,滾輪拉近拉遠。

詳細的內容可到 Head First C#, 4th Edition Github

觀看次數: 1512
cameraunityscript
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!