簡體   English   中英

unity2d 中的 WASD 運動

[英]WASD movement in unity2d

我是新來的團結,想知道我怎么可以設置Ad鍵移動我的rightleftRigidbody2D 我在論壇上找到了這個腳本,但它似乎不起作用:

public float speed = 5f;
private float movement = 0f;
private Rigidbody2D rigidBody;
// Use this for initialization
void Start()
{
    rigidBody = GetComponent<Rigidbody2D>();
}

// Update is called once per frame
void Update()
{
    movement = Input.GetAxis("Horizontal");
    if (movement > 0f)
    {
        rigidBody.velocity = new Vector2(movement * speed, rigidBody.velocity.y);
    }
    else if (movement < 0f)
    {
        rigidBody.velocity = new Vector2(movement * speed, rigidBody.velocity.y);
    }
    else
    {
        rigidBody.velocity = new Vector2(0, rigidBody.velocity.y);
    }
}

是否拋出錯誤?
首先要檢查的是,您將此腳本附加到的任何內容實際上都有一個Rigidbody2D

物理,即設置剛體速度,應該在FixedUpdate而不是Update ,如果你FixedUpdate一下,現在看起來太混亂了,別擔心,你現在可以擺脫這個。

也許你應該嘗試使用rb.AddForce(movement * speed, ForceMode2D.Impluse); .

由於 var movement實際上是正的或負的取決於您按下的鍵,因此 if 語句的前兩位沒有任何用處。

嘗試尋找這個有關移動玩家一個教程。

暫無
暫無

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

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