private void Move(DirectionalInputType _directionalInput, bool _firstDirectionalInput) { switch (_directionalInput) { case DirectionalInputType.Left: CurrentMenu.MoveLeft(); break; case DirectionalInputType.Right: CurrentMenu.MoveRight(); break; case DirectionalInputType.Down: CurrentMenu.MoveDown(); break; case DirectionalInputType.Up: CurrentMenu.MoveUp(); break; case DirectionalInputType.Null: break; } if (_directionalInput != DirectionalInputType.Null && _firstDirectionalInput) { m_menuFirstNavigationCooldownTimer.Start(); CanMove = false; } else if (_directionalInput != DirectionalInputType.Null) { m_menuContinuedNavigationCooldownTimer.Start(); CanMove = false; } }
private void HandleDirectionalInput() { DirectionalInputType lastDirectionalInput = m_currentDirectionalInput; if (InputManager.Instance.InputLeft) { m_currentDirectionalInput = DirectionalInputType.Left; } else if (InputManager.Instance.InputRight) { m_currentDirectionalInput = DirectionalInputType.Right; } else if (InputManager.Instance.InputDown) { m_currentDirectionalInput = DirectionalInputType.Down; } else if (InputManager.Instance.InputUp) { m_currentDirectionalInput = DirectionalInputType.Up; } else { m_currentDirectionalInput = DirectionalInputType.Null; m_menuFirstNavigationCooldownTimer.Stop(); CanMove = true; } if (CanMove && lastDirectionalInput == DirectionalInputType.Null && lastDirectionalInput != m_currentDirectionalInput) { Move(m_currentDirectionalInput, true); } else if (CanMove) { Move(m_currentDirectionalInput, false); } }