簡體   English   中英

統一二維字符 controller 上的水平移動力無法正常工作

[英]Force on horizontal movement on unity 2D character controller is not working correctly

C# 字符 Controller

我剛開始使用 unity,我很難將力施加到精靈上。 jump vector 2 變量沒問題,但水平移動有問題。 代碼不檢測鍵是否被按住,如果你不斷地敲擊鍵,它只會向任一側施加力,然后它會朝一個方向移動。

我不確定我是否不能使用剛體進行水平移動,或者矢量寫得不正確。 如果您能回答可能的問題和/或有幫助的解決方案,謝謝。

public float JumpForce;

public float HorizontalForce;

bool  isGrounded = false;

Rigidbody2D RB;

void Start()
{
    RB = GetComponent<Rigidbody2D>();
}

void Update()
{
    if(Input.GetKeyDown(KeyCode.Space))
    { 
        if(isGrounded == true)
        {
            RB.AddForce(Vector2.up * JumpForce);
            isGrounded = false;
        }
                
    }
    if (Input.GetKeyDown(KeyCode.A))
    {
        RB.AddForce(Vector2.left * HorizontalForce);
    }
    if (Input.GetKeyDown(KeyCode.D))
    {
        RB.AddForce(Vector2.right * HorizontalForce);
    }

}
private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("ground")) ;
    {
        if(isGrounded == false)
        {
            isGrounded = true;
        }
    }
}

}

您需要GetButton()而不是GetButtonDown()

GetButtonDown 僅適用於按下按鈕的單幀。 只要按住按鈕,GetButton 就會返回 true

暫無
暫無

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

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