我有一个简单的问题。假设我想通过使用Vector2速度变量来转换它来移动我的角色,它将从Input.GetAxis中获取它的值。当我编写代码时:
Vector2 input=new Vector2(Input.GexAxis("Horizontal"), Input.GetAxis("Vertical"));
velocity.x=input.x* Time.deltaTime * moveSpeed;
velocity.y+=gravityTime.deltaTime;
transform.Translate(velocityTime.deltaTime);
我得到一个奇怪的错误,其中我的角色几乎没有移动(它移动但非常缓慢并且它口吃很多)。但是,从velocity.x中删除Time.deltaTime后,我可以正常工作。我知道Time.deltaTime是什么以及它用于什么但是我不知道为什么我不能将它与input.x一起使用但是可以在重力下使用它?
btw moveSpeed和gravity只是具有公开指定值的浮点变量。
答案 0 :(得分:0)
您可以使用更简单(但数量更多)的代码实现移动。
if (Input.GetKey(KeyCode.W))
{
gameObject.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
只需针对每个方向重复此操作即可。