// Update is called once per frame void Update() { float inputX = Input.GetAxis("Horizontal"); float inputY = Input.GetAxis("Vertical"); if (inputY > 0) { dir = UDLRDirection.Up; } InputSelector(mode); if (inputY < 0) { dir = UDLRDirection.Down; } InputSelector(mode); if (inputX > 0) { dir = UDLRDirection.Right; } InputSelector(mode); if (inputX < 0) { dir = UDLRDirection.Left; } InputSelector(mode); if (inputY == 0 && inputX == 0) { dir = UDLRDirection.None; } }
void HandleInputsTranslate(UDLRDirection _dir) { switch (axis) { case UDLRAxis.XY: switch (_dir) { case UDLRDirection.Up: player.position += Vector3.up * speed * Time.deltaTime; break; case UDLRDirection.Down: player.position -= Vector3.up * speed * Time.deltaTime; break; case UDLRDirection.Left: player.position -= Vector3.right * speed * Time.deltaTime; break; case UDLRDirection.Right: player.position += Vector3.right * speed * Time.deltaTime; break; } break; case UDLRAxis.XZ: switch (_dir) { case UDLRDirection.Up: player.position += Vector3.forward * speed * Time.deltaTime; break; case UDLRDirection.Down: player.position -= Vector3.forward * speed * Time.deltaTime; break; case UDLRDirection.Left: player.position -= Vector3.right * speed * Time.deltaTime; break; case UDLRDirection.Right: player.position += Vector3.right * speed * Time.deltaTime; break; } break; case UDLRAxis.YZ: break; } }
void HandleInptusRigidbody(UDLRDirection _dir) { switch (axis) { case UDLRAxis.XY: switch (_dir) { case UDLRDirection.Up: rigid.AddForce(Vector3.up * speed, ForceMode.Impulse); break; case UDLRDirection.Down: rigid.AddForce(-Vector3.up * speed, ForceMode.Impulse); break; case UDLRDirection.Left: rigid.AddForce(-Vector3.right * speed, ForceMode.Impulse); break; case UDLRDirection.Right: rigid.AddForce(Vector3.right * speed, ForceMode.Impulse); break; } break; case UDLRAxis.XZ: switch (_dir) { case UDLRDirection.Up: rigid.AddForce(Vector3.forward * speed, ForceMode.Impulse); break; case UDLRDirection.Down: rigid.AddForce(-Vector3.forward * speed, ForceMode.Impulse); break; case UDLRDirection.Left: rigid.AddForce(-Vector3.right * speed, ForceMode.Impulse); break; case UDLRDirection.Right: rigid.AddForce(Vector3.right * speed, ForceMode.Impulse); break; } break; case UDLRAxis.YZ: break; } }