From ffb3387d8bd6f7102a0b82873c43ee9ce51d99e2 Mon Sep 17 00:00:00 2001 From: "v.boldyrev" Date: Mon, 8 Jan 2018 16:39:29 +0300 Subject: [PATCH] licence, readme.md --- Assets/Editor/UnityPickers/AssetPicker.cs | 94 +++-- .../Editor/UnityPickers/AssetPickerDrawer.cs | 5 +- Assets/Editor/UnityPickers/ValuePicker.cs | 2 - Assets/Example/Code/Monster.cs | 3 + Assets/Example/Code/Root.cs | 10 - Assets/Example/Code/StartHereAsset.cs | 24 ++ .../{Root.cs.meta => StartHereAsset.cs.meta} | 0 .../Example/{Root.asset => START_HERE.asset} | 13 +- ...{Root.asset.meta => START_HERE.asset.meta} | 0 Assets/Example/Textures.meta | 9 + Assets/Example/Textures/Circle.png | Bin 0 -> 78 bytes Assets/Example/Textures/Circle.png.meta | 330 ++++++++++++++++++ Assets/Example/Textures/Diamond.png | Bin 0 -> 78 bytes Assets/Example/Textures/Diamond.png.meta | 82 +++++ Assets/Example/Textures/Hexagon.png | Bin 0 -> 78 bytes Assets/Example/Textures/Hexagon.png.meta | 86 +++++ Assets/Example/Textures/Polygon.png | Bin 0 -> 78 bytes Assets/Example/Textures/Polygon.png.meta | 84 +++++ Assets/Example/Textures/Square.png | Bin 0 -> 78 bytes Assets/Example/Textures/Square.png.meta | 82 +++++ Assets/Example/Textures/Triangle.png | Bin 0 -> 78 bytes Assets/Example/Textures/Triangle.png.meta | 80 +++++ LICENSE | 21 ++ README.md | 67 ++++ docs/pictures/asset_picker.png | Bin 0 -> 9039 bytes docs/pictures/enum_picker.png | Bin 0 -> 10796 bytes docs/pictures/start_here.png | Bin 0 -> 26322 bytes docs/pictures/type_picker.png | Bin 0 -> 5794 bytes 28 files changed, 935 insertions(+), 57 deletions(-) delete mode 100644 Assets/Example/Code/Root.cs create mode 100644 Assets/Example/Code/StartHereAsset.cs rename Assets/Example/Code/{Root.cs.meta => StartHereAsset.cs.meta} (100%) rename Assets/Example/{Root.asset => START_HERE.asset} (52%) rename Assets/Example/{Root.asset.meta => START_HERE.asset.meta} (100%) create mode 100644 Assets/Example/Textures.meta create mode 100644 Assets/Example/Textures/Circle.png create mode 100644 Assets/Example/Textures/Circle.png.meta create mode 100644 Assets/Example/Textures/Diamond.png create mode 100644 Assets/Example/Textures/Diamond.png.meta create mode 100644 Assets/Example/Textures/Hexagon.png create mode 100644 Assets/Example/Textures/Hexagon.png.meta create mode 100644 Assets/Example/Textures/Polygon.png create mode 100644 Assets/Example/Textures/Polygon.png.meta create mode 100644 Assets/Example/Textures/Square.png create mode 100644 Assets/Example/Textures/Square.png.meta create mode 100644 Assets/Example/Textures/Triangle.png create mode 100644 Assets/Example/Textures/Triangle.png.meta create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/pictures/asset_picker.png create mode 100644 docs/pictures/enum_picker.png create mode 100644 docs/pictures/start_here.png create mode 100644 docs/pictures/type_picker.png diff --git a/Assets/Editor/UnityPickers/AssetPicker.cs b/Assets/Editor/UnityPickers/AssetPicker.cs index 4639743..a458ef9 100644 --- a/Assets/Editor/UnityPickers/AssetPicker.cs +++ b/Assets/Editor/UnityPickers/AssetPicker.cs @@ -156,15 +156,16 @@ private Type AssetType private HierarchyEntry firstVisibleEntry; - [MenuItem("Tools/Asset picker %&#A", false, 5000)] - public static void ShowAssetPicker() + [MenuItem("Tools/Asset Picker %&#O", false, 5000)] + public static void OpenWindow() { var w = GetWindow(); w.focusNameFilter = true; w.UpdateAssetList(); } - public static void ShowAssetPicker( + // todo: prettifty Show signatures + public static void Show( [NotNull] Type assetType, [CanBeNull] FieldInfo fieldInfo, [NotNull] Action callback, @@ -204,7 +205,11 @@ public static void ShowAssetPicker( w.Focus(); } - public static void ShowAssetPicker(Action callback, string[] labels, bool enableSelectionOnClick = false, Object selectedAsset = null) + public static void Show( + [NotNull] Action callback, + [CanBeNull] string[] labels = null, + bool enableSelectionOnClick = false, + [CanBeNull] Object selectedAsset = null) { var w = CreateInstance(); w.enableSelectionOnClick = enableSelectionOnClick; @@ -224,34 +229,20 @@ public static void ShowAssetPicker(Action callback, string[] labels, w.Focus(); } - public IEnumerable CollectAssetTypes() - { - yield return typeof(GameObject); - yield return typeof(Material); - yield return typeof(Texture); - yield return typeof(SceneAsset); - yield return typeof(ScriptableObject); - - var assemblies = AppDomain.CurrentDomain.GetAssemblies(); - var gameAssembly = assemblies.Single(a => a.FullName.Contains("Assembly-CSharp,")); - var soTypes = TypeEx.GetSubclasses(true, gameAssembly); - - foreach (var type in soTypes) - { - yield return type; - } - } - // todo: c# docs /// /// Shows built-in ObjectField with custom value source and pick target /// - public static void ShowPropertyField( - Rect position, SerializedProperty property, FieldInfo fieldInfo, - Object currentValue, Action pickCallback, - GUIContent label, Type assetType, - Func filter = null) + public static void PropertyField( + Rect position, + [NotNull] SerializedProperty property, + [NotNull] FieldInfo fieldInfo, + [CanBeNull] Object currentValue, + [NotNull] Action pickCallback, + [NotNull] GUIContent label, + [NotNull] Type assetType, + [CanBeNull] Func filter = null) { using (var scope = new EditorGUI.PropertyScope(position, label, property)) { @@ -284,7 +275,7 @@ public static void ShowPropertyField( else if (showHotKey || GUI.Button(buttonPos, "", GUIStyle.none)) { // invisible button overrides object picker - ShowAssetPicker( + Show( assetType, fieldInfo, o => @@ -315,7 +306,7 @@ public static void ShowPropertyField( if (GUI.GetNameOfFocusedControl() == controlName) { - // todo: fix copy paste + // todo: implement copy paste // CopyPasteController.Process(assetType, property); } @@ -329,28 +320,37 @@ public static void ShowPropertyField( /// /// Shows built-in ObjectField, but overrides thumb button to call our AssetPicker window instead /// - public static void ShowPropertyField(Rect position, SerializedProperty property, FieldInfo fieldInfo, GUIContent label, Type assetType, Func filter = null) + public static void PropertyField( + Rect position, + [NotNull] SerializedProperty property, + [NotNull] FieldInfo fieldInfo, + [NotNull] GUIContent label, + [NotNull] Type assetType, + [CanBeNull] Func filter = null) { - Action pickCallback = + Action pickCallback = o => property.objectReferenceValue = o; - ShowPropertyField( + PropertyField( position, property, fieldInfo, property.objectReferenceValue, pickCallback, label, assetType, filter ); } - public static void ShowObjectField( - Rect position, Object currentValue, Action pickCallback, - GUIContent label, Type assetType, - Func filter = null) + public static void ObjectField( + Rect position, + [CanBeNull] Object currentValue, + [NotNull] Action pickCallback, + [NotNull] GUIContent label, + [NotNull] Type assetType, + [CanBeNull] Func filter = null) { EditorGUI.BeginChangeCheck(); var buttonPos = position; buttonPos.xMin = buttonPos.xMax - EditorGUIUtility.singleLineHeight; var requesterWindow = focusedWindow; - string controlName = "ObjField"+label.text; + string controlName = "ObjField" + label.text; var e = Event.current; bool showHotKey = GUI.GetNameOfFocusedControl() == controlName && @@ -374,7 +374,7 @@ public static void ShowObjectField( else if (showHotKey || GUI.Button(buttonPos, "", GUIStyle.none)) { // invisible button overrides object picker - ShowAssetPicker( + Show( assetType, null, o => @@ -405,6 +405,24 @@ public static void ShowObjectField( } } + public IEnumerable CollectAssetTypes() + { + yield return typeof(GameObject); + yield return typeof(Material); + yield return typeof(Texture); + yield return typeof(SceneAsset); + yield return typeof(ScriptableObject); + + var assemblies = AppDomain.CurrentDomain.GetAssemblies(); + var gameAssembly = assemblies.Single(a => a.FullName.Contains("Assembly-CSharp,")); + var soTypes = TypeEx.GetSubclasses(true, gameAssembly); + + foreach (var type in soTypes) + { + yield return type; + } + } + static AssetPicker() { } diff --git a/Assets/Editor/UnityPickers/AssetPickerDrawer.cs b/Assets/Editor/UnityPickers/AssetPickerDrawer.cs index d1b7151..2434ad6 100644 --- a/Assets/Editor/UnityPickers/AssetPickerDrawer.cs +++ b/Assets/Editor/UnityPickers/AssetPickerDrawer.cs @@ -15,9 +15,12 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten if (assetType.IsUnityCollection()) assetType = assetType.GetElementType(); + if (assetType == null) + return; + var a = fieldInfo.GetAttribute(); - AssetPicker.ShowPropertyField( + AssetPicker.PropertyField( position, property, fieldInfo, label, assetType, he => a == null || he.Path.Contains(a.Path) diff --git a/Assets/Editor/UnityPickers/ValuePicker.cs b/Assets/Editor/UnityPickers/ValuePicker.cs index 40a739c..924c66e 100644 --- a/Assets/Editor/UnityPickers/ValuePicker.cs +++ b/Assets/Editor/UnityPickers/ValuePicker.cs @@ -17,8 +17,6 @@ public abstract class ValuePicker : EditorWindow private static GUIStyle selectedStyle; - // todo: previous selected style - [CanBeNull] private T prevPicked; diff --git a/Assets/Example/Code/Monster.cs b/Assets/Example/Code/Monster.cs index ef8a540..ce4a74e 100644 --- a/Assets/Example/Code/Monster.cs +++ b/Assets/Example/Code/Monster.cs @@ -12,5 +12,8 @@ public class Monster : ScriptableObject [AssetPicker("Example/Monsters/Prefabs")] public MonsterView Prefab; + + [AssetPicker] + public Texture Icon; } } \ No newline at end of file diff --git a/Assets/Example/Code/Root.cs b/Assets/Example/Code/Root.cs deleted file mode 100644 index 5e2c518..0000000 --- a/Assets/Example/Code/Root.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEngine; - -namespace Example.Code -{ - [CreateAssetMenu(menuName = "Resources/Root")] - public class Root : ScriptableObject - { - public Monster[] Monsters; - } -} \ No newline at end of file diff --git a/Assets/Example/Code/StartHereAsset.cs b/Assets/Example/Code/StartHereAsset.cs new file mode 100644 index 0000000..7210edf --- /dev/null +++ b/Assets/Example/Code/StartHereAsset.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using UnityPickers; + +namespace Example.Code +{ + [CreateAssetMenu(menuName = "Resources/StartHere")] + public class StartHereAsset : ScriptableObject + { + public MonsterType MonsterType; + + public Monster Monster; + + public Faction Faction; + + [AssetPicker] + public GameObject AnyPrefab; + + [AssetPicker("Example/Monsters/Prefabs")] + public MonsterView MonsterPrefab; + + [AssetPicker] + public Texture Icon; + } +} \ No newline at end of file diff --git a/Assets/Example/Code/Root.cs.meta b/Assets/Example/Code/StartHereAsset.cs.meta similarity index 100% rename from Assets/Example/Code/Root.cs.meta rename to Assets/Example/Code/StartHereAsset.cs.meta diff --git a/Assets/Example/Root.asset b/Assets/Example/START_HERE.asset similarity index 52% rename from Assets/Example/Root.asset rename to Assets/Example/START_HERE.asset index 61fff83..6e18b0f 100644 --- a/Assets/Example/Root.asset +++ b/Assets/Example/START_HERE.asset @@ -9,10 +9,11 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: b39f6e84c4284def828908dace078c2c, type: 3} - m_Name: Root + m_Name: START_HERE m_EditorClassIdentifier: - Monsters: - - {fileID: 11400000, guid: 8f68f7791183abd458bf9ebee40de012, type: 2} - - {fileID: 11400000, guid: 6236317bb59716342ba83c17cf36f989, type: 2} - - {fileID: 11400000, guid: 46f2f905e3d786a4f8ba428d82d846db, type: 2} - - {fileID: 11400000, guid: 4c150a27badb11c4ea87c7e99e154d3e, type: 2} + Monster: {fileID: 0} + Faction: {fileID: 0} + MonsterType: 0 + AnyPrefab: {fileID: 0} + MonsterPrefab: {fileID: 0} + Icon: {fileID: 0} diff --git a/Assets/Example/Root.asset.meta b/Assets/Example/START_HERE.asset.meta similarity index 100% rename from Assets/Example/Root.asset.meta rename to Assets/Example/START_HERE.asset.meta diff --git a/Assets/Example/Textures.meta b/Assets/Example/Textures.meta new file mode 100644 index 0000000..20dc420 --- /dev/null +++ b/Assets/Example/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4ec1e13c4ad9a2c47addfe3d7324e6b6 +folderAsset: yes +timeCreated: 1515409997 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Example/Textures/Circle.png b/Assets/Example/Textures/Circle.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb1b1ecc13b6e1d2375151866134cd7a040340c GIT binary patch literal 78 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=L_J*`LpWrU|M0W$cr!i aF)*;jval%k!i aF)*;jval%k!i aF)*;jval%k!i aF)*;jval%k!i aF)*;jval%k!i aF)*;jval%k + +Replacement for default object selection window that shows folders structure and enables filtering by asset path. + +### Enum Picker + + + +Replacement for default enum selection popup. Allows filtering by value names. + +### Type Picker + + + +Type selection button for your custom editors. + +### Features +* Smart search using multiple strings (space seperated, order matters). +* All pickers provide API to use in your editors. +* User-defined filters (in API). +* Asset Picker is faster than builtin. +* Asset browsing mode. + +## Getting Started + +### Installing + +1. Copy `Assets/UnityPickers` and `Assets/Editor/UnityPickers` to your Unity project. +2. Asset Picker will be instantly enabled for `ScriptableObject` fields in user-defined types. +3. You can mark specific field with `[AssetPicker]` attribute to enable Asset Picker for it. +4. Enum Picker will be instantly enabled for all user-definded enum fields. + +### Preview + + + +1. Open bundled project in Unity _(I was using 2017.1.1p4)_. +2. Open `START_HERE` asset in inspector and hit object selection buttons near fields to open Asset Picker. +3. Click on enum value of `Monster Type` field to show Enum Picker. +4. STAR_HERE type is defined in `StartHereAsset.cs`. Threre are some field attributes. +5. Select `Tools/Asset Picker` menu or hit `Ctrl+Alt+Shift+O` to open Asset Picker in browsing mode. + +## Motivation + +Unity Pickers are part of our toolset for [Pathfinder: Kingmaker](https://owlcatgames.com/) production. They are addressing following issues: +* Drag-and-dropping into object fields from Project View becomes less convenient as project grows. Searching for specific object is tiresome. +* Default object selection window doesn't show folder structure and doesn't allow to filter by folder names. It is crucial to make full use of folders structure when you have many files. +* Default object selection window becomes incredibly slow on large projects. +* [ObjectPicker API](https://docs.unity3d.com/ScriptReference/EditorGUIUtility.ShowObjectPicker.html) is clumsy :) +* Default enum selection popup lacks filtering by value names. +* Our component system and visual scripting tools need control for type selection (similar to 'Add Component' for Game Objects). + +## Authors +* [**Vasily Boldyrev**](https://github.com/vasyab) - _Owlcat Games_ +* [**Alexey Drobyshevsky**](https://github.com/Cotoff) - _Owlcat Games_ +* **Alexander Chernyakov** - _Owlcat Games_ +* **Alexander Sokolenko** - _Owlcat Games_ + +## Licence + +This code is distributed under the terms and conditions of the MIT license. \ No newline at end of file diff --git a/docs/pictures/asset_picker.png b/docs/pictures/asset_picker.png new file mode 100644 index 0000000000000000000000000000000000000000..c269005913d82635cd7e0d0bcd1f52d6ca8f2458 GIT binary patch literal 9039 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 literal 0 HcmV?d00001 diff --git a/docs/pictures/start_here.png b/docs/pictures/start_here.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd1b81ddfa6f9a54596f6c5bf867deffd691dad GIT binary patch literal 26322 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%0DPdqGu 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 S_5%RX8KkMIqf!NhMf?wHrx0@h literal 0 HcmV?d00001