Unity3D 入門:最簡單的控制視角,以及控制角色前進、轉向的腳本

本文依然是 Unity3D 的入門篇。作爲 Unity3D 的入門讀者,你可能希望迅速讓你能在遊戲中操作你的視角,或者讓角色移動。


創建腳本

作爲入門篇,可能需要講一下如何創建腳本。按下圖,在 Unity 編輯器中:

  1. Hierarchy(層級)中選中主攝像機;
  2. Inspector(檢查器)中選擇最後那個 Add Component(添加組件);
  3. 選擇 New Script(新建腳本)輸入腳本名稱,然後點擊 Create and Add(創建並添加)。

創建並添加腳本

接下來,我們需要去 Visual Studio 中編輯這個腳本。

點擊菜單中的 Assets -> Open C# Project資源 -> 打開 C# 項目)。於是可以轉到 Visual Studio 中編輯你的腳本文件。

最簡代碼

在 Visual Studio 中找到我們剛剛創建的 PlayerController 腳本。

其實就是腳本名加上 .cs 後綴。Unity 中 C# 腳本要求文件名必須匹配腳本的類名,因此,不要隨便嘗試改文件名或類名;就算改了,也要同步更新文件名和類名重新匹配,並重新在 Inspector 中添加新名稱的腳本。

在腳本中添加如下代碼:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private Transform transform;
    public float moveSpeed = 5f;
    public float rotateSpeed = 50f;

    void Start()
    {
        transform = GetComponent<Transform>();
    }

    void Update()
    {
        float adValue = Input.GetAxis("Horizontal");
        float wsValue = Input.GetAxis("Vertical");
        float mValue = Input.GetAxis("Mouse X");

        var moveDirection = (Vector3.forward * wsValue) + (Vector3.right * adValue);
        transform.Translate(moveDirection.normalized * moveSpeed * Time.deltaTime, Space.Self);
        transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime * mValue);
    }
}

Start 消息會在遊戲對象(也就是前面我們添加了腳本的那個主攝像機)創建後,第一個 Update 消息執行前調用,可以用來做一些初始化。這裏,我們拿到我們需要做變換的 Transform 組件(這裏的組件也就是 Unity 編輯器的“檢查器”中看到的一個個組件)。

Update 會盡量在每一幀執行一次,我們在這裏執行一些需要每幀更新的邏輯。

我們做了這些事情:

  1. 定義了公共的兩個字段 moveSpeedrotateSpeed 表示移動速度和轉向速度。
  2. 通過 Input.GetAxis 獲取不同種類的玩家輸入。
  3. 通過玩家的輸入計算 Transform 組件的更新差量,然後更新 Transform 組件。

關於在腳本當中公開屬性以在編輯器中設置的更多細節,可閱讀我的另一篇 Unity3D 入門博客:

可以看以下效果(gif 文件有點大,多等等):

在這裏插入圖片描述


我的博客會首發於 https://blog.walterlv.com/,而 CSDN 會從其中精選發佈,但是一旦發佈了就很少更新。

如果在博客看到有任何不懂的內容,歡迎交流。我搭建了 dotnet 職業技術學院 歡迎大家加入。

知識共享許可協議

本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名呂毅(包含鏈接:https://walterlv.blog.csdn.net/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章