我正在尝试使用控制器在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
可以很好地工作,但据我了解,对于这类事情,应避免使用。
答案 0 :(得分:2)
Rigidbody.MovePosition通过插值设置刚体的位置。看起来您想使位置偏移host_id
,因此您可能应该设置速度。如果您仍然想使用movement
,则应该使用MovePosition
。
答案 1 :(得分:0)
“使用控制器”
您是指Character Controller组件吗?您有2个选项,并且它们在Unity文档中都有详细说明。 其次是Rigidbody组件。