002_移動速度

爱吃冰激凌的黄某某發表於2024-11-24

002_移動速度

移動速度:單位/幀

public class RubyController : MonoBehaviour
{
    // 在第一次幀更新之前呼叫 Start
    void Start()
    {
        //垂直同步計數設為0,才能鎖幀,否則鎖幀程式碼無效
        //垂直同步的作用就是顯著減少遊戲畫面撕裂、跳幀,因為畫面的渲染不是整個畫面一同渲染的,而是逐行或逐列渲染的,能夠讓FPS保持與螢幕的重新整理率相同。
        QualitySettings.vSyncCount = 0;
        //設定應用程式幀數為60
        Application.targetFrameRate = 60;
    }

    // 每幀呼叫一次 Update
    void Update()
    {
        /* 根據按鍵移動上下左右的位置:每幀移動0.1 */
        //獲取水平輸入,按向左會獲得-1.0f,按向右會獲得1.0f
        float horizontal = Input.GetAxis("Horizontal");
        //獲取垂直輸入按向下會獲得-1.0f,按向上會獲得1.0f
        float vertical = Input.GetAxis("Vertical");
        //獲取物件當前位置
        Vector2 position = transform.position;
        //更改位置
        position.x = position.x + 0.1f * horizontal;
        position.y = position.y + 0.1f * vertical;
        //新位置給遊戲物件
        transform.position = position;
    }
}

移動速度:單位/秒

public class RubyController : MonoBehaviour
{
    // 將速度暴露出來,使其可調
    public float speed = 4f;

    // 在第一次幀更新之前呼叫 Start
    void Start()
    {

    }

    // 每幀呼叫一次 Update
    void Update()
    {
        /* 根據按鍵移動上下左右的位置:每幀移動0.1 */
        //獲取水平輸入,按向左會獲得-1.0f,按向右會獲得1.0f
        float horizontal = Input.GetAxis("Horizontal");
        //獲取垂直輸入按向下會獲得-1.0f,按向上會獲得1.0f
        float vertical = Input.GetAxis("Vertical");
        //獲取物件當前位置
        Vector2 position = transform.position;
        //更改位置,Time.deltaTime 每幀的時間間隔,float 型別
        position.x = position.x + speed * horizontal * Time.deltaTime;
        position.y = position.y + speed * vertical * Time.deltaTime;
        //新位置給遊戲物件
        transform.position = position;
    }
}

相關文章