关于利用虚拟轴控制角色移动的问题:
运行时,未按下任何键,角色为何自动朝(-1,1)方向移动?
这是虚拟轴的设定,都是默认设定:unity版本2020.3.27f1c1
这是代码:
public float MoveSpeed = 2.0f;
private Vector2 dir = new Vector2();
private void MoveControl()
{
dir.x = Input.GetAxis("Horizontal");
dir.y = Input.GetAxis("Vertical");
dir.Normalize(); //将x y两个方向的向量整合
transform.position += new Vector3(dir.x, dir.y, 0.0f) * MoveSpeed * Time.deltaTime;
}
但利用GetKey则没有任何问题
private void MoveControl()
{
if (Input.GetKey(KeyCode.A))
{
transform.Translate(Vector2.left * Time.deltaTime * MoveSpeed);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(Vector2.right * Time.deltaTime * MoveSpeed);
}
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector2.up * Time.deltaTime * MoveSpeed);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(Vector2.down * Time.deltaTime * MoveSpeed);
}
}
在网上搜好像没有人遇到过这种问题,求帮助!谢谢!