public ShipCamTargetValues CalculateTargets()
        {
            if (HasTargets && ((_cyclePeriod > 0 && _cycleTimer > _cyclePeriod) || Input.GetKeyUp(KeyCode.O) || _bestOrientator == null || !_bestOrientator.HasTargets))
            {
                CycleToNextVallidOrientator();
                _cycleTimer = 0;
            }

            _cycleTimer += Time.unscaledDeltaTime;
            return(_bestOrientator.CalculateTargets());
        }
        public ShipCamTargetValues CalculateTargets()
        {
            _userPriorityCountdown -= Time.unscaledDeltaTime;

            if (Input.GetKeyUp(KeyCode.O))
            {
                CycleToNextVallidOrientator();
                Debug.Log("User selected camera mode: " + _userPriorityOrientator.Description);
            }

            var active = _orientators.Where(o => o.HasTargets);

            active = active.Any() ? active : _orientators;

            //Debug.Log(string.Join(", ", active.OrderByDescending(o => o.Priority).Select(o => o.Description + o.Priority).ToArray()));

            _bestOrientator = _userPriorityCountdown > 0
                ? _userPriorityOrientator
                : active
                              .OrderByDescending(o => o.Priority)
                              .FirstOrDefault();

            return(_bestOrientator.CalculateTargets());
        }