Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 左右移动刚体_C#_Unity3d_Game Engine - Fatal编程技术网

C# 左右移动刚体

C# 左右移动刚体,c#,unity3d,game-engine,C#,Unity3d,Game Engine,我似乎无法让我的刚体左右移动。代码看起来很好,与其他人发布的代码非常相似 正在调用调试语句,但我的角色没有左右移动 谢谢你的帮助 public float speed = 4.0f; void Update() { float moveDirection = Input.GetAxis("Horizontal"); if (Input.GetKeyDown("d")) { Debug.Log("pressed d

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

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

谢谢你的帮助

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
的力的方法

因此,尝试将
速度
提高到大约
40000
,然后您应该能够注意到应用的
AddForce

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

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

一个不错的单行选项是使用transform-translate

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

AddForce不会在运动学刚体上工作。验证并在刚体组件中将IsKinetic设置为false。 如果这已经是错误的,请尝试按照d4Rk的建议增加力值