可以使按照指令物体移动的方法
一、常规方法
//四个方向 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);
来源:51CTO
作者:豪美游戏
链接:https://blog.csdn.net/weixin_44350205/article/details/100826233