// Inspector GUI shown in the Editor window. Base class shows BrushSettings by default internal override void DrawGUI(BrushSettings brushSettings) { base.DrawGUI(brushSettings); /// Verify dependencies VerifyLoadedAssetsIntegrity(); EditorGUI.BeginChangeCheck(); /// Interface s_UsePivotForPlacement.value = PolyGUILayout.Toggle(m_GCUsePrefabPivot, s_UsePivotForPlacement); s_ParentObjectWithSurface.value = PolyGUILayout.Toggle(m_GCHitSurfaceIsParent, s_ParentObjectWithSurface); s_AvoidOverlappingGameObjects.value = PolyGUILayout.Toggle(m_GcAvoidOverlappingGameObjects, s_AvoidOverlappingGameObjects); EditorGUI.BeginChangeCheck(); m_CurrentPaletteIndex = EditorGUILayout.Popup(m_CurrentPaletteIndex, m_AvailablePalettesAsStrings); if (EditorGUI.EndChangeCheck()) { if (m_CurrentPaletteIndex >= m_AvailablePalettes.Length) { SetPrefabPalette(PrefabPaletteEditor.AddNew()); } else { SetPrefabPalette(m_AvailablePalettes[m_CurrentPaletteIndex]); } } using (new GUILayout.HorizontalScope()) { EditorGUILayout.LabelField("Preview Size"); s_PreviewThumbSize.value = (int)EditorGUILayout.Slider((float)s_PreviewThumbSize, 60f, 128f); } if (EditorGUI.EndChangeCheck()) { if (m_CurrentPaletteIndex >= m_AvailablePalettes.Length) { SetPrefabPalette(PrefabPaletteEditor.AddNew()); } else { SetPrefabPalette(m_AvailablePalettes[m_CurrentPaletteIndex]); } PolybrushSettings.Save(); } using (new GUILayout.VerticalScope()) { if (prefabLoadoutEditor != null) { prefabLoadoutEditor.OnInspectorGUI_Internal(s_PreviewThumbSize); } } }
/// <summary> /// Verify if all loaded assets haven't been touched by users. /// If one or multiples assets are missing, refresh the Palettes list and loadouts. /// </summary> void VerifyLoadedAssetsIntegrity() { if (m_AvailablePalettes.Length > 0 && !System.Array.TrueForAll(m_AvailablePalettes, x => x != null)) { RefreshAvailablePalettes(); m_CurrentPaletteIndex = 0; if (m_AvailablePalettes.Length > 0) { SetPrefabPalette(m_AvailablePalettes[m_CurrentPaletteIndex]); } else { SetPrefabPalette(PrefabPaletteEditor.AddNew()); } prefabLoadoutEditor.RefreshPalettesList(m_AvailablePalettes.ToList()); } }