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); } }