使用播放器输入移动刚体

时间:2019-04-05 19:30:42

标签: unity3d

我正在尝试使用控制器在3d世界中移动对象,但认为我错过了一些东西,因为只要输入任何内容,它就会被剪掉:

private void Update()
{
    float h = Input.GetAxisRaw("Horizontal");
    float v = Input.GetAxisRaw("Vertical");

    Vector3 movement = new Vector3(h, 0, v).normalized * Time.deltaTime * speed;
    if(h != 0 || v != 0)
        _rigidBody.MovePosition(movement);
}

使用_rigidbody.velocity可以很好地工作,但据我了解,对于这类事情,应避免使用。

2 个答案:

答案 0 :(得分:2)

Rigidbody.MovePosition通过插值设置刚体的位置。看起来您想使位置偏移host_id,因此您可能应该设置速度。如果您仍然想使用movement,则应该使用MovePosition

答案 1 :(得分:0)

  

“使用控制器”

您是指Character Controller组件吗?您有2个选项,并且它们在Unity文档中都有详细说明。 其次是Rigidbody组件。