【发布时间】:2018-02-08 12:25:59
【问题描述】:
首先...我不是以英语为母语的人,很抱歉英语不好,我正在努力提高他们。
所以,我正在研究这个简单的角色移动系统,当我测试时我意识到如果按下“W”或“S”键,玩家将向前移动,如果我按下“A”或“D” " 玩家将向后移动而不是侧身,我一直在寻找和寻找与我的问题类似的东西......有人可以帮助我吗?
void Update () {
// input
Vector2 input = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));
Vector2 inputDir = input.normalized;
bool running = Input.GetKey (KeyCode.LeftShift);
Move (input, running);
if (Input.GetKeyDown (KeyCode.Space)) {
Jump ();
}
}
void Move(Vector2 inputDir, bool running) {
float targetSpeed = ((running) ? runSpeed : walkSpeed);
float realSpeed = targetSpeed * Time.deltaTime;
Vector3 directionToMove = new Vector3 (inputDir.x, 0, inputDir.y) * realSpeed;
transform.Translate (directionToMove);
}
【问题讨论】:
-
到底是什么问题?按“W”将向前移动(+z)。按“S”会将其向后移动(Z-)。向右移动=“D”键。左移动=“A”键。这不是“WASD”应该如何工作的吗?您是否正在尝试做其他事情?
-
按“S”他不后退,他也往前,按“A”他后退,按“D”他也后退
-
查看我在下面留下的答案