コード例 #1
0
        private void ToggleAllProperties(FolderToPresetData folderToPresetData, Preset preset, bool enabled)
        {
            for (int i = 0; i < preset.PropertyModifications.Length; i++)
            {
                PropertyModification presetPropertyModification = preset.PropertyModifications[i];
                folderToPresetData.SetSettingEnabled(presetPropertyModification.propertyPath, enabled);
            }

            EditorUtility.SetDirty(presetManagerStorage);
        }
コード例 #2
0
 private static void ValidateInstances()
 {
     for (int i = Instance.foldersPresets.Count - 1; i >= 0; i--)
     {
         FolderToPresetData instanceFoldersPreset = Instance.foldersPresets[i];
         if (!instanceFoldersPreset.IsValid)
         {
             Instance.foldersPresets.RemoveAt(i);
         }
     }
 }
コード例 #3
0
        private void DrawPresetOptions(int index, FolderToPresetData folderToPresetData, Preset preset)
        {
            EditorGUI.indentLevel++;

            if (foldoutPerSettings == null)
            {
                foldoutPerSettings = new bool[presetManagerStorage.FoldersPresets.Count];
            }

            foldoutPerSettings[index] = EditorGUILayout.Foldout(foldoutPerSettings[index],
                                                                "Customize Parameters", EditorStyles.foldout);

            if (foldoutPerSettings[index])
            {
                for (int i = 0; i < preset.PropertyModifications.Length; i++)
                {
                    PropertyModification propertyModification = preset.PropertyModifications[i];

                    EditorGUI.BeginChangeCheck();
                    bool settingEnabled = folderToPresetData.IsSettingEnabled(propertyModification.propertyPath);
                    settingEnabled = EditorGUILayout.ToggleLeft(propertyModification.propertyPath, settingEnabled);
                    if (EditorGUI.EndChangeCheck())
                    {
                        folderToPresetData.SetSettingEnabled(propertyModification.propertyPath, settingEnabled);
                        EditorUtility.SetDirty(presetManagerStorage);
                    }
                }

                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("Select All", EditorStyles.toolbarButton))
                {
                    ToggleAllProperties(folderToPresetData, preset, true);
                }

                if (GUILayout.Button("Unselect All", EditorStyles.toolbarButton))
                {
                    ToggleAllProperties(folderToPresetData, preset, false);
                }
                EditorGUILayout.EndHorizontal();
            }

            if (GUILayout.Button("Delete", EditorStyles.toolbarButton))
            {
                presetManagerStorage.FoldersPresets.Remove(folderToPresetData);
            }

            EditorGUI.indentLevel--;
        }
コード例 #4
0
        private void DrawFolderToPreset(int index, FolderToPresetData folderToPresetData)
        {
            string       folderPath = AssetDatabase.GUIDToAssetPath(folderToPresetData.FolderGuid);
            DefaultAsset folder     = AssetDatabase.LoadAssetAtPath <DefaultAsset>(folderPath);
            string       presetPath = AssetDatabase.GUIDToAssetPath(folderToPresetData.PresetGuid);
            Preset       preset     = AssetDatabase.LoadAssetAtPath <Preset>(presetPath);

            EditorGUILayout.BeginVertical("Box");
            EditorGUILayout.LabelField($"{preset.name} -> {folder.name}", EditorStyles.toolbarDropDown);

            DrawReferences(folderPath, folder, presetPath, preset);
            DrawPresetOptions(index, folderToPresetData, preset);


            EditorGUILayout.EndVertical();
        }
コード例 #5
0
        public override void OnInspectorGUI()
        {
            List <FolderToPresetData> folderToPresetDatas = presetManagerStorage.FoldersPresets;

            for (int i = folderToPresetDatas.Count - 1; i >= 0; i--)
            {
                FolderToPresetData folderToPresetData = folderToPresetDatas[i];

                if (!folderToPresetData.IsValid)
                {
                    continue;
                }

                DrawFolderToPreset(i, folderToPresetData);
            }
            DrawExtraOptions();
        }
コード例 #6
0
        private void DrawAddNewSettings()
        {
            EditorGUILayout.BeginVertical("Box");
            EditorGUILayout.LabelField($"Add new Folder to Preset config", EditorStyles.toolbarDropDown);
            EditorGUILayout.Space();
            newSetupFolder = (DefaultAsset)EditorGUILayout.ObjectField("Folder", newSetupFolder, typeof(DefaultAsset), false);
            newSetupPreset = (Preset)EditorGUILayout.ObjectField("Preset", newSetupPreset, typeof(Preset), false);


            EditorGUILayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(newSetupFolder == null || newSetupPreset == null || !HasFolderSelected());

            if (GUILayout.Button("Save", EditorStyles.toolbarButton))
            {
                FolderToPresetData folderToPresetData = new FolderToPresetData(
                    AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(newSetupFolder)),
                    AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(newSetupPreset)));


                EditorUtility.SetDirty(presetManagerStorage);

                newSetupFolder     = null;
                newSetupPreset     = null;
                addNewSetup        = false;
                foldoutPerSettings = null;
                presetManagerStorage.FoldersPresets.Add(folderToPresetData);
            }
            EditorGUI.EndDisabledGroup();

            if (GUILayout.Button("Cancel", EditorStyles.toolbarButton))
            {
                newSetupFolder = null;
                newSetupPreset = null;
                addNewSetup    = false;
            }
            EditorGUILayout.EndHorizontal();


            EditorGUILayout.EndVertical();
        }