Skip to content

Commit cc21fd3

Browse files
committed
Minor UX improvements for the ScriptableObjectCreationWizard
1 parent aafcd15 commit cc21fd3

5 files changed

Lines changed: 65 additions & 8 deletions

File tree

Assets/Editor Toolbox/Editor/Wizards/ScriptableObjectCreationWizard.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,13 @@ public void Validate()
6363
}
6464

6565
private static readonly TypeConstraintContext sharedConstraint = new TypeConstraintScriptableObject();
66-
private static readonly TypeAppearanceContext sharedAppearance = new TypeAppearanceContext(sharedConstraint, TypeGrouping.None, true);
66+
private static readonly TypeAppearanceContext sharedAppearance = new TypeAppearanceContext(sharedConstraint, TypeGrouping.ByNamespace, true);
6767
private static readonly TypeField typeField = new TypeField(sharedConstraint, sharedAppearance);
6868

6969
private readonly CreationData data = new CreationData();
7070

7171
private bool inspectDefaultObject;
72+
private bool useSearchField = true;
7273

7374
[MenuItem("Assets/Create/Toolbox/ScriptableObject Creation Wizard", priority = 5)]
7475
internal static void Initialize()
@@ -81,13 +82,18 @@ internal static void Initialize()
8182
private void DrawSettingsPanel()
8283
{
8384
EditorGUILayout.LabelField("Settings", EditorStyles.boldLabel);
85+
86+
useSearchField = EditorGUILayout.ToggleLeft("Use Search Field", useSearchField);
87+
8488
var rect = EditorGUILayout.GetControlRect(true);
85-
typeField.OnGui(rect, true, OnTypeSelected, data.InstanceType);
89+
typeField.OnGui(rect, useSearchField, OnTypeSelected, data.InstanceType);
8690
if (data.InstanceType == null)
8791
{
8892
return;
8993
}
9094

95+
ToolboxEditorGui.DrawLine();
96+
9197
EditorGUI.BeginChangeCheck();
9298
data.InstanceName = EditorGUILayout.TextField(Style.nameContent, data.InstanceName);
9399
data.InstancesCount = EditorGUILayout.IntField(Style.countContent, data.InstancesCount);

Assets/Editor Toolbox/Editor/Wizards/ToolboxWizard.cs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ public class ToolboxWizard : EditorWindow
1111

1212
private Vector2 scrollPosition;
1313

14+
private void OnEnable()
15+
{
16+
if (targetEditor != null)
17+
{
18+
ReinitEditor(targetEditor);
19+
}
20+
}
21+
1422
private void OnDestroy()
1523
{
1624
DestroyImmediate(targetEditor);
@@ -54,21 +62,30 @@ private void OnGUI()
5462
}
5563
}
5664

57-
private void PrepareEditor()
65+
private void CreateEditor()
5866
{
5967
if (targetEditor != null)
6068
{
6169
return;
6270
}
6371

6472
targetEditor = Editor.CreateEditor(this);
65-
targetEditor.hideFlags = HideFlags.HideAndDontSave;
66-
if (targetEditor is ToolboxEditor toolboxEditor)
73+
ReinitEditor(targetEditor);
74+
OnWizardUpdate();
75+
}
76+
77+
private void ReinitEditor(Editor editor)
78+
{
79+
if (editor == null)
6780
{
68-
toolboxEditor.IgnoreProperty(PropertyUtility.Defaults.scriptPropertyName);
81+
return;
6982
}
7083

71-
OnWizardUpdate();
84+
editor.hideFlags = HideFlags.HideAndDontSave;
85+
if (editor is ToolboxEditor toolboxEditor)
86+
{
87+
toolboxEditor.IgnoreProperty(PropertyUtility.Defaults.scriptPropertyName);
88+
}
7289
}
7390

7491
protected virtual void OnWizardCreate()
@@ -79,7 +96,7 @@ protected virtual void OnWizardUpdate()
7996

8097
protected virtual void OnWizardGui()
8198
{
82-
PrepareEditor();
99+
CreateEditor();
83100
targetEditor.OnInspectorGUI();
84101
}
85102

Assets/Examples/Scriptables.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 5d1935b7b3931904e91b76d6e7e5e0f4, type: 3}
13+
m_Name: Sample Scriptable Object
14+
m_EditorClassIdentifier:
15+
var1: 1
16+
var2: 32
17+
vars:
18+
- abc

Assets/Examples/Scriptables/Sample Scriptable Object.asset.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)