private void DrawItem(int index) { CollectableScriptableObject collectionItem = filteredItemList[index]; using (new EditorGUILayout.VerticalScope("Box")) { using (new EditorGUILayout.HorizontalScope()) { CollectionUtility.SetFoldoutOpen(collectionItem, EditorGUILayout.Toggle(GUIContent.none, CollectionUtility.IsFoldoutOpen(collectionItem), EditorStyles.foldout, GUILayout.Width(13))); using (EditorGUI.ChangeCheckScope changeCheck = new EditorGUI.ChangeCheckScope()) { string newName = EditorGUILayout.DelayedTextField(collectionItem.name, CollectionEditorGUI.ItemNameStyle, GUILayout.ExpandWidth(true)); if (changeCheck.changed) { AssetDatabaseUtils.RenameAsset(collectionItem, newName); } } DrawSelectItem(collectionItem); DrawMoveItemDownButton(collectionItem); DrawMoveItemUpButton(collectionItem); DrawDeleteButton(collectionItem); } if (CollectionUtility.IsFoldoutOpen(collectionItem)) { EditorGUI.indentLevel++; Editor editor = CollectionUtility.GetEditorForItem(collectionItem); using (EditorGUI.ChangeCheckScope changeCheck = new EditorGUI.ChangeCheckScope()) { GUILayout.Space(10); editor.OnInspectorGUI(); EditorGUILayout.Space(); if (changeCheck.changed) { if (index > filteredSerializedList.Count - 1 || filteredSerializedList[index] == null) { filteredItemListDirty = true; } else { filteredSerializedList[index].ApplyModifiedProperties(); } } } EditorGUI.indentLevel--; } } }
private void DrawGotoButton(ref Rect popupRect) { Rect buttonRect = popupRect; buttonRect.width = 30; buttonRect.height = 18; popupRect.width -= buttonRect.width; buttonRect.x += popupRect.width; if (GUI.Button(buttonRect, CollectionEditorGUI.ARROW_RIGHT_CHAR)) { Selection.activeObject = item.Collection; CollectionUtility.SetFoldoutOpen(true, item, item.Collection); } }
private void DrawEditFoldoutButton(ref Rect popupRect) { Rect buttonRect = popupRect; buttonRect.width = 30; buttonRect.height = 18; popupRect.width -= buttonRect.width; buttonRect.x += popupRect.width; GUIContent guiContent = CollectionEditorGUI.EditGUIContent; if (CollectionUtility.IsFoldoutOpen(foldoutObject)) { guiContent = CollectionEditorGUI.CloseGUIContent; } if (GUI.Button(buttonRect, guiContent)) { CollectionUtility.SetFoldoutOpen(foldoutObject, !CollectionUtility.IsFoldoutOpen(foldoutObject)); ObjectUtility.SetDirty(collectableItem); } }
private void DrawEditFoldoutButton(ref Rect popupRect, ScriptableObjectCollectionItem targetItem) { Rect buttonRect = popupRect; buttonRect.width = 30; buttonRect.height = 18; popupRect.width -= buttonRect.width; buttonRect.x += popupRect.width; GUIContent guiContent = CollectionEditorGUI.EditGUIContent; if (CollectionUtility.IsFoldoutOpen(targetItem, currentObject)) { guiContent = CollectionEditorGUI.CloseGUIContent; } if (GUI.Button(buttonRect, guiContent)) { CollectionUtility.SetFoldoutOpen(!CollectionUtility.IsFoldoutOpen(targetItem, currentObject), targetItem, currentObject); ObjectUtility.SetDirty(targetItem); } }