コード例 #1
0
        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();
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 void Awake()
 {
     _lastSavedSettings = GazeFocusSettings.CreateDefault();
     _defaultSettings   = GazeFocusSettings.CreateDefault();
 }
コード例 #4
0
 private void CacheAsLastSavedSettings(GazeFocusSettings gazeFocusSettings)
 {
     _lastSavedSettings.LayerMask       = gazeFocusSettings.LayerMask;
     _lastSavedSettings.MaximumDistance = gazeFocusSettings.MaximumDistance;
 }
コード例 #5
0
 private static GazeFocusSettings RetrieveSettings()
 {
     return(GazeFocusSettings.Get());
 }
コード例 #6
0
 private void SaveSettings()
 {
     GazeFocusSettings.Set(_gazeFocusSettings);
     CacheAsLastSavedSettings(_gazeFocusSettings);
     NotifySettingsChanged();
 }