private void ChangeActiveButton(Direction direction) { switch (direction) { case Direction.Up: if (_currentActiveButton.ButtonOnUp != null) { _currentActiveButton.ToggleActive(); _currentActiveButton = _currentActiveButton.ButtonOnUp; _currentActiveButton.ToggleActive(); } break; case Direction.Down: if (_currentActiveButton.ButtonOnDown != null) { _currentActiveButton.ToggleActive(); _currentActiveButton = _currentActiveButton.ButtonOnDown; _currentActiveButton.ToggleActive(); } break; case Direction.Left: if (_currentActiveButton.ButtonOnLeft != null) { _currentActiveButton.ToggleActive(); _currentActiveButton = _currentActiveButton.ButtonOnLeft; _currentActiveButton.ToggleActive(); } break; case Direction.Right: if (_currentActiveButton.ButtonOnRight != null) { _currentActiveButton.ToggleActive(); _currentActiveButton = _currentActiveButton.ButtonOnRight; _currentActiveButton.ToggleActive(); } break; default: throw new ArgumentOutOfRangeException("direction", direction, null); } }