/// <summary> /// Movement in Left/Right directions /// </summary> /// <param name="direction">Left/Right</param> public void MoveInDirection(CharacterMoveDirection direction) { RotateInDirection(direction); if (direction == CharacterMoveDirection.Left) { _characterView.transform.position += Vector3.left * Time.deltaTime * _characterModel._movementSpeed; } else { _characterView.transform.position += Vector3.right * Time.deltaTime * _characterModel._movementSpeed; } }
// 移動 public Vector2 CharacterMove(CharacterMoveDirection cmd) { float dx = 0, dy = 0; switch (cmd) { case CharacterMoveDirection.Top: dy = 1; break; case CharacterMoveDirection.Right: dx = 1; break; case CharacterMoveDirection.Bottom: dy = -1; break; case CharacterMoveDirection.Left: dx = -1; break; case CharacterMoveDirection.TopRight: dy = 1; dx = 1; break; case CharacterMoveDirection.TopLeft: dy = 1; dx = -1; break; case CharacterMoveDirection.BottomRight: dy = -1; dx = 1; break; case CharacterMoveDirection.BottomLeft: dy = -1; dx = -1; break; } pos = new Vector2(dx / MoveDelay, dy / MoveDelay); return(pos); }
/// <summary> /// Character orientation in Left/Right directions /// </summary> /// <param name="direction">Facing Left/Right</param> private void RotateInDirection(CharacterMoveDirection direction) { if (direction == CharacterMoveDirection.Right) { if (_characterView.transform.rotation == _rightRotation) { return; } _characterView.transform.rotation = _rightRotation; } else { if (_characterView.transform.rotation == _leftRotation) { return; } _characterView.transform.rotation = _leftRotation; } }
public void SetCurrentMoveDir(Vector3 playerDir) { // this method is called in "RPG_Controller" in line 60 when it is checking for movement inputs and sets the variable currentMoveDir bool forward = false; bool backward = false; bool left = false; bool right = false; if (playerDir.z > 0) forward = true; if (playerDir.z < 0) backward = true; if (playerDir.x < 0) left = true; if (playerDir.x > 0) right = true; if (forward) { if (left) currentMoveDir = CharacterMoveDirection.StrafeForwardLeft; else if (right) currentMoveDir = CharacterMoveDirection.StrafeForwardRight; else currentMoveDir = CharacterMoveDirection.Forward; } else if (backward) { if (left) currentMoveDir = CharacterMoveDirection.StrafeBackLeft; else if (right) currentMoveDir = CharacterMoveDirection.StrafeBackRight; else currentMoveDir = CharacterMoveDirection.Backward; } else if (left) currentMoveDir = CharacterMoveDirection.StrafeLeft; else if (right) currentMoveDir = CharacterMoveDirection.StrafeRight; else currentMoveDir = CharacterMoveDirection.None; }
public void SetCurrentMoveDir(Vector3 playerDir) // this method is called in "RPG_Controller" in line 60 when it is checking for movement inputs and sets the variable currentMoveDir { bool forward = false; bool backward = false; bool left = false; bool right = false; if (playerDir.z > 0) { forward = true; } if (playerDir.z < 0) { backward = true; } if (playerDir.x < 0) { left = true; } if (playerDir.x > 0) { right = true; } if (forward) { if (left) { currentMoveDir = CharacterMoveDirection.StrafeForwardLeft; } else if (right) { currentMoveDir = CharacterMoveDirection.StrafeForwardRight; } else { currentMoveDir = CharacterMoveDirection.Forward; } } else if (backward) { if (left) { currentMoveDir = CharacterMoveDirection.StrafeBackLeft; } else if (right) { currentMoveDir = CharacterMoveDirection.StrafeBackRight; } else { currentMoveDir = CharacterMoveDirection.Backward; } } else if (left) { currentMoveDir = CharacterMoveDirection.StrafeLeft; } else if (right) { currentMoveDir = CharacterMoveDirection.StrafeRight; } else { currentMoveDir = CharacterMoveDirection.None; } }