private static GazeFocusSettings GetSettingsFromObject(JSONNode json) { var gfs = new GazeFocusSettings(); gfs.LayerMask = json["LayerMask"].AsInt; gfs.MaximumDistance = json["MaximumDistance"].AsFloat; return(gfs); }
/// <summary> /// Overwrites the currently stored settings with the supplied /// gazeFocusSettings. This call will only affect the stored settings, /// it will not update the settings loaded by the gaze focus system. /// </summary> /// <remarks>Will only store settings if called in Unity Editor.</remarks> /// <param name="gazeFocusSettings"></param> public static void Set(GazeFocusSettings gazeFocusSettings) { #if UNITY_EDITOR var json = new JSONClass(); json["LayerMask"].AsInt = gazeFocusSettings.LayerMask; json["MaximumDistance"].AsFloat = gazeFocusSettings.MaximumDistance; string settingsAsJson = json.ToString(); File.WriteAllText(FilePath, settingsAsJson); #endif }
void OnGUI() { if (!_isInitialized) { _gazeFocusSettings = RetrieveSettings(); CacheAsLastSavedSettings(_gazeFocusSettings); _isInitialized = true; } EditorGUILayout.Space(); var headerStyle = new GUIStyle(GUI.skin.label); headerStyle.fontStyle = FontStyle.Bold; headerStyle.font.material.color = Color.white; EditorGUILayout.LabelField( new GUIContent("Gaze Focus Settings"), headerStyle); EditorGUILayout.Space(); _gazeFocusSettings.MaximumDistance = EditorGUILayout.FloatField( new GUIContent("Maximum Distance", "The maximum depth of the gaze focus detection"), _gazeFocusSettings.MaximumDistance); _gazeFocusSettings.LayerMask = DrawLayerMaskField( new GUIContent("Gaze Focus Layers", "Layers that should be used for the gaze focus detection."), _gazeFocusSettings.LayerMask); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); GUI.enabled = !IsDefault(); if (GUILayout.Button("Default Values", GUILayout.MaxWidth(105))) { UseDefaultValues(); } GUI.enabled = HasUnsavedChanges(); if (GUILayout.Button("Revert", GUILayout.MaxWidth(100))) { RestoreToLastSavedSettings(); } if (GUILayout.Button("Apply", GUILayout.MaxWidth(100))) { SaveSettings(); } GUI.enabled = true; GUILayout.EndHorizontal(); }
private static void ReloadSettings() { var gazeFocusSettings = GazeFocusSettings.Get(); LayerMask = gazeFocusSettings.LayerMask; MaximumDistance = gazeFocusSettings.MaximumDistance; if (Scorer != null) { Scorer.Reconfigure(MaximumDistance, LayerMask.value); } if (_multiScorer != null) { _multiScorer.Reconfigure(MaximumDistance, LayerMask.value); } }
private void CacheAsLastSavedSettings(GazeFocusSettings gazeFocusSettings) { _lastSavedSettings.LayerMask = gazeFocusSettings.LayerMask; _lastSavedSettings.MaximumDistance = gazeFocusSettings.MaximumDistance; }
private static GazeFocusSettings RetrieveSettings() { return(GazeFocusSettings.Get()); }
private void SaveSettings() { GazeFocusSettings.Set(_gazeFocusSettings); CacheAsLastSavedSettings(_gazeFocusSettings); NotifySettingsChanged(); }
public bool Equals(GazeFocusSettings otherSettings) { return(this.LayerMask == otherSettings.LayerMask && (float.IsInfinity(this.MaximumDistance) && float.IsInfinity(otherSettings.MaximumDistance) || Math.Abs(this.MaximumDistance - otherSettings.MaximumDistance) < float.Epsilon)); }