private void ShowSelectedScene() { SetDefaultSceneSettings(); DestroyCurrentScene(); currentScene = Instantiate(scenes[currentSceneIdx] as UnityEngine.Object, Vector3.zero, Quaternion.identity) as GameObject; currentScene.SetActive(true); logger.DebugLog("Enabling scene " + currentScene.name); }
/** * Sets the current virtual distance to accomodate to in meters. * * Updates are throttled temporally by {minTimeBetweenUpdatesSecs} * and physically by {minDistanceBetweenUpdatesPercentDiopters}. * * The {perceptualSmoothingAlpha} param can be set between 0 and 1 and enables * driving the display to the target virtual distance over multiple updates * spaced out by {minTimeBetweenUpdatesSecs} according to the following formula: * currentVirtualDistanceDiopters = alpha * targetVirtualDistanceDiopters + (1 - alpha) * currentVirtualDistanceDiopters * This continues until convergence and can prevent sudden large movements of the display. * To disable perceptual smoothing, set perceptualSmoothingAlpha=-1. */ public void AccommodateVirtualDistance(float virtualDistanceMeters, float perceptualSmoothingAlpha = -1) { if (virtualDistanceMeters != currentDistanceMeters) { logger.DebugLog("Setting virtual distance=" + virtualDistanceMeters + " meters, perceptual smoothing alpha=" + perceptualSmoothingAlpha + ""); } currentDistanceMeters = virtualDistanceMeters; currentPerceptualSmoothing = perceptualSmoothingAlpha; }
public void CalibrateCurrent() { logger.DebugLog("Starting calibration for distance (meters): " + calibrationDistancesMeters [currentCalibrationIdx]); displayAccomodationManager.AccommodateVirtualDistance(calibrationDistancesMeters [currentCalibrationIdx]); #if UNITY_EDITOR OnCalibrationResult(0); #else SMI.SMIEyeTrackingMobile.Instance.smi_StartFivePointCalibration(); #endif }
private void OnApplicationFocusChange(bool isPaused) { if (!Connected) { return; } if (isPaused) { logger.DebugLog("Application paused. Disengaging motor."); bluetoothPeripheralManager.SendInt16LE(MotorControlSignals.DisengageStepper); bluetoothPeripheralManager.SendInt16LE(MotorControlSignals.DisengageStepper); } else { logger.DebugLog("Application resumed. Re-engaging motor."); bluetoothPeripheralManager.SendInt16LE(MotorControlSignals.EngageStepper); } }
public void SetEyeCalibration(float virtualDistanceMeters) { if (calibrations.Count != 0) { Calibration closestCalibration = GetClosestCalibration(virtualDistanceMeters); if (currentCalibration == null || currentCalibration.name != closestCalibration.name) { currentCalibration = closestCalibration; logger.DebugLog("Loading eye calibration: scene distance=" + virtualDistanceMeters + ", calibration distance=" + closestCalibration.distance); #if !UNITY_EDITOR SMI.SMIEyeTrackingMobile.Instance.smi_LoadCalibration(closestCalibration.name); #endif } } }
public void ConnectTo(BluetoothPeripheralParams newPeripheralParams) { if (_peripheralParams.HasValue && newPeripheralParams.Equals(_peripheralParams.Value)) { logger.Warning("Already connected to this peripheral: " + newPeripheralParams); return; } #if UNITY_EDITOR _state = States.None; _connected = true; if (OnConnect != null) { OnConnect(); } return; #endif ResetState(() => { _peripheralParams = newPeripheralParams; BluetoothLEHardwareInterface.Initialize(true, false, () => { logger.DebugLog("Initialized bluetooth hardware interface."); SetState(States.Scan, 0.1f); }, (error) => { logger.Error("Error initializing bluetooth hardware interface: " + error); }); }); }