簡體   English   中英

如何在 Unity 中使玩家垂直(前后)移動 3D

[英]How to make vertical (front and back) movement of a player in Unity 3D

我正在 Unity 3D 中構建一個游戲項目,我設法讓玩家向左或向右移動,但在讓玩家前后移動時遇到了問題。

它是代碼的一部分。 如何使玩家前后移動? 我已經使用了 getaxis function,但仍然無法正常工作。

void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            jump = true;
        }
        horizontalInput = Input.GetAxis("Horizontal");
        verticalInput = Input.GetAxis("Vertical"); ;
    }
    private void FixedUpdate()
    {
        GetComponent<Rigidbody>().velocity = new Vector3(horizontalInput, GetComponent<Rigidbody>().velocity.y, 0);
        

        if (jump==true)
        {
            GetComponent<Rigidbody>().AddForce(Vector3.up * 5, ForceMode.VelocityChange);
            jump = false;
        }
    }
}
private void FixedUpdate()
{
    GetComponent<Rigidbody>().velocity = new Vector3(horizontalInput, GetComponent<Rigidbody>().velocity.y, verticalInput);
    if (jump==true)
    {
        GetComponent<Rigidbody>().AddForce(Vector3.up * 5, ForceMode.VelocityChange);
        jump = false;
    }
}

如果您不是將速度矢量的 z 軸設置為零,而是將其設置為 verticalInput 的值,這將允許玩家根據“垂直”軸的值向前和向后移動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM