/// <summary> /// Makes sure we always have a valid BrushSettings selected in Polybrush then refresh the available list for the EditorWindow. /// Will create a new file if it cannot find any. /// </summary> internal void EnsureBrushSettingsListIsValid() { if (brushSettings == null) { if (brushSettingsAsset == null) { brushSettingsAsset = BrushSettingsEditor.LoadBrushSettingsAssets(EditorPrefs.GetString(k_BrushSettingsAssetPref, "")); } if (EditorPrefs.HasKey(k_BrushSettingsPref)) { brushSettings = ScriptableObject.CreateInstance <BrushSettings>(); JsonUtility.FromJsonOverwrite(EditorPrefs.GetString(k_BrushSettingsPref), brushSettings); if (EditorPrefs.HasKey(k_BrushSettingsName)) { brushSettings.name = EditorPrefs.GetString(k_BrushSettingsName); } } else { SetBrushSettings(brushSettingsAsset != null ? brushSettingsAsset : PolyEditorUtility.GetFirstOrNew <BrushSettings>()); } } m_AvailableBrushes = BrushSettingsEditor.GetAvailableBrushes(); m_AvailableBrushesStrings = m_AvailableBrushes.Select(x => x.name).ToArray(); m_CurrentBrushIndex = System.Math.Max(Array.FindIndex <string>(m_AvailableBrushesStrings, x => x == brushSettings.name), 0); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, string.Empty); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, "Add Brush..."); }
void PopulateAvailableBrushList() { m_AvailableBrushes = BrushSettingsEditor.GetAvailableBrushes(); m_AvailableBrushesStrings = m_AvailableBrushes.Select(x => x.name).ToArray(); m_CurrentBrushIndex = System.Math.Max(Array.FindIndex <string>(m_AvailableBrushesStrings, x => x == brushSettings.name), 0); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, string.Empty); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, "Add Brush..."); }
/// <summary> /// Updates the current available brushes to update the dropdown list. /// </summary> void RefreshAvailableBrushList() { m_AvailableBrushes = BrushSettingsEditor.GetAvailableBrushes(); m_AvailableBrushesStrings = m_AvailableBrushes.Select(x => x.name).ToArray(); var brushSettingsName = brushSettings != null ? brushSettings.name : (EditorPrefs.HasKey(k_BrushSettingsName) ? EditorPrefs.GetString(k_BrushSettingsName) : String.Empty); m_CurrentBrushIndex = System.Math.Max(Array.FindIndex <string>(m_AvailableBrushesStrings, x => x == brushSettingsName), 0); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, string.Empty); ArrayUtility.Add <string>(ref m_AvailableBrushesStrings, "Add Brush..."); }