public static void Stop() { if (_eyeTrackingProvider == null) { return; } Internal.G2OM.Destroy(); _eyeTrackingProvider.Destroy(); if (_updaterGameObject != null) { #if UNITY_EDITOR if (Application.isPlaying) { Object.Destroy(_updaterGameObject.gameObject); } else { Object.DestroyImmediate(_updaterGameObject.gameObject); } #else Object.Destroy(_updaterGameObject.gameObject); #endif } _updaterGameObject = null; Internal.G2OM = null; _eyeTrackingProvider = null; }
public TobiiHTCProvider() { #if TOBIIXR_HTCPROVIDER if (ViveSR.anipal.Eye.SRanipal_Eye.IsViveProEye()) { _selectedProvider = new HTCProvider(); return; } #endif var model = UnityEngine.XR.XRDevice.model.Replace(".", "").ToLower(); if (model.Contains("vive")) { if (model.Equals("vive mv")) // Old HTC Vive only has retrofitted eye tracking { _selectedProvider = new TobiiProvider(); } else // All other Vive models use HTC eye tracking { _selectedProvider = new HTCProvider(); } } else // Fall back to Tobii Provider for unknown models { _selectedProvider = new TobiiProvider(); } }
public static bool Start(TobiiXR_Settings settings = null) { if (_eyeTrackingProvider != null) { Debug.LogWarning(string.Format("TobiiXR already started with provider ({0})", _eyeTrackingProvider)); VerifyInstanceIntegrity(); return(false); } if (settings == null) { settings = TobiiXR_Settings.CreateDefaultSettings(); } _eyeTrackingProvider = settings.EyeTrackingProvider; if (_eyeTrackingProvider == null) { _eyeTrackingProvider = new NoseDirectionProvider(); Debug.LogWarning(string.Format("Creating ({0}) failed. Using ({1}) as fallback", settings.GetProviderType(), _eyeTrackingProvider.GetType().Name)); } Debug.Log(string.Format("Starting TobiiXR with ({0}) as provider for eye tracking", _eyeTrackingProvider)); _g2om = settings.G2OM; VerifyInstanceIntegrity(); return(true); }
public void Destroy() { if (_provider == null) { return; } _provider.Destroy(); _provider = null; }
public static string GetProviderCompilerFlag(IEyeTrackingProvider provider) { var attribute = Attribute.GetCustomAttribute(provider.GetType(), typeof(CompilerFlagAttribute)) as CompilerFlagAttribute; if (attribute == null) { return(null); } return(attribute.Flag); }
public GazeModifierProvider(IEyeTrackingProvider provider, IModifierSettings settings, ICameraHelper camera, IEnumerable <IGazeModifier> modifiers = null) { var repo = new PercentileRepository(); _provider = provider; _settings = settings; _camera = camera ?? new CameraHelper(); _accuracyModifier = new AccuracyModifier(repo, _settings); _precisionModifier = new PrecisionModifier(repo, _settings); _modifiers = modifiers ?? new List <IGazeModifier>() { _accuracyModifier, _precisionModifier, new TrackabilityModifier(repo, _settings) }; }
public static bool Start(TobiiXR_Settings settings = null) { if (!TobiiEulaFile.IsEulaAccepted()) { Debug.LogError("You need to accept Tobii Software Development License Agreement to be able to use Tobii XR Unity SDK."); return(false); } if (_eyeTrackingProvider != null) { Debug.LogWarning(string.Format("TobiiXR already started with provider ({0})", _eyeTrackingProvider)); VerifyInstanceIntegrity(); return(false); } if (settings == null) { settings = TobiiXR_Settings.CreateDefaultSettings(); } if (settings.FieldOfUse == FieldOfUse.NotSelected) { //For more info, see https://developer.tobii.com/vr/develop/unity/documentation/configure-tobii-xr/ Debug.LogError("Field of use has not been selected. Please specify intended field of use in TobiiXR_Settings (can also be edited in Window->Tobii->Tobii Settings)"); } _eyeTrackingProvider = settings.EyeTrackingProvider; if (_eyeTrackingProvider == null) { _eyeTrackingProvider = new NoseDirectionProvider(); Debug.LogWarning(string.Format("Creating ({0}) failed. Using ({1}) as fallback", settings.GetProviderType(), _eyeTrackingProvider.GetType().Name)); } Debug.Log(string.Format("Starting TobiiXR with ({0}) as provider for eye tracking", _eyeTrackingProvider)); Internal.Settings = settings; Internal.G2OM = settings.G2OM; VerifyInstanceIntegrity(); return(true); }
public GazeModifierProvider(IEyeTrackingProvider provider, ICameraHelper camera = null) : this(provider, GazeModifierSettings.CreateDefaultSettings(), camera, null) { }