[英]Force on horizontal movement on unity 2D character controller is not working correctly
我剛開始使用 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.