可以使按照指令物体移动的方法
一、常规方法
//四个方向
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.Translate(Vector3.left * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
}
二、使用unity自带的移动方式
float H = Input.GetAxis("Horizontal");
float V = Input.GetAxis("Vertical");
if (H!=0 || V!=0)
{
transform.Translate(new Vector3(H,0,V)*Time.deltaTime*moveSpeed,Space.World);
}
else
{
//没有移动
}
三、通过刚体控制移动(必须添加刚体)
//通过刚体控制物体移动,需要添加刚体
Vector3 moveForward = Vector3.zero;
if (Input.GetKey(KeyCode.W))
{
moveForward.z += 1;
}
if (Input.GetKey(KeyCode.S))
{
moveForward.z += -1;
}
if (Input.GetKey(KeyCode.A))
{
moveForward.x += -1;
}
if (Input.GetKey(KeyCode.D))
{
moveForward.x += 1;
}
GetComponent<Rigidbody>().MovePosition(Quaternion.LookRotation(transform.forward)
* moveForward * moveSpeed * Time.fixedDeltaTime + transform.position);