private float rotateSpeed = 30f;
private float movespeed = 5;
void FixedUpdate()
{
//第一种控制移动
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
//朝一个方向移动 new Vector3(0, 0, v) * speed * Time.deltaTime是个向量
transform.Translate(new Vector3(0, 0, v) * movespeed * Time.deltaTime); //前后移动
transform.Rotate(new Vector3(0, h, 0) * rotateSpeed * Time.deltaTime); //左右旋转
//第二种方式控制移动
if (Input.GetKey(KeyCode.W)) //前进
{
transform.Translate(Vector3.forward * movespeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.S)) //后退
{
transform.Translate(Vector3.back * movespeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.A))//向左旋转
{
transform.Rotate(0,-rotateSpeed * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.D)))//向右旋转
{
transform.Rotate(0, rotateSpeed * Time.deltaTime, 0);
}
}
这篇博客介绍了如何在Unity中利用键盘的WASD键实现物体的前后移动与左右旋转。通过`FixedUpdate`方法,结合`Input.GetAxis`或`Input.GetKey`检查用户输入,然后应用`transform.Translate`和`transform.Rotate`进行移动和旋转操作。示例代码详细展示了两种不同的控制方式。
917

被折叠的 条评论
为什么被折叠?



