左右移动刚体

moving a rigidbody left and right

我似乎无法让我的刚体左右移动。代码看起来不错,与其他人发布的代码非常相似!

正在调用调试语句,但我的角色没有左右移动。

感谢您的帮助。

public float speed = 4.0f;
 void Update()
    {
        float moveDirection = Input.GetAxis("Horizontal");

        if (Input.GetKeyDown("d"))
        {
            Debug.Log("pressed d");
            rb.AddForce(new Vector2(Time.deltaTime * speed * moveDirection, 0), ForceMode2D.Force);
        }

我刚刚使用 3D 环境对其进行了测试,但这应该无关紧要。所以毕竟我很确定你有办法减少对 AddForce.

施加的力

因此请尝试将 speed 增加到大约 40000,然后您应该能够注意到正在应用 AddForce

如果您想保持较低的 speed 值,您当然可以在此处添加一个乘数:

rb.AddForce(new Vector2(Time.deltaTime * speed * moveDirection * 10000f, 0), ForceMode2D.Force);

一个不错的单行选项是使用转换翻译。

void Update () 
{
    transform.Translate(Vector3.right * speed * Input.GetAxis("Horizontal") * Time.deltaTime);
}

AddForce 不适用于运动学的刚体。在 Rigidbody 组件中验证并设置 isKinematic 为 false。 如果这已经是错误的,请尝试按照 d4Rk 的建议增加力值。