Пример #1
0
        public void SetTrackingState(Valve.VR.ETrackingResult state, float batteryPercent, bool isCharging, bool force = false)
        {
            bool changed = false;

            //only update if the battery changed enough:
            const float MIN_BATTERY_CHANGE_PERCENT = 0.01f;

            if (Mathf.Abs(_batteryPercent - batteryPercent) > MIN_BATTERY_CHANGE_PERCENT)
            {
                _batteryPercent = batteryPercent;
                changed         = true;
            }

            if (_trackingState != state)
            {
                _trackingState = state;
                changed        = true;
            }

            if (isCharging != _isCharging)
            {
                _isCharging = isCharging;
                changed     = true;
            }

            if (force || changed)
            {
                OnTrackerStateChangedEvent.Invoke(this);
            }
        }