Search Unity

Official Quick Search Preview

Discussion in 'Editor Workflows' started by benoitd_unity, Feb 26, 2019.

  1. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Seldomly, when I am dragging things from the quick search windows Unity would hard crash. It's not 100%, but it crash while I am not releasing the mouse yet. The Editor.log contains this message :

    Code (CSharp):
    1. Receiving unhandled NULL exception
    2. Obtained 33 stack frames.
    3. #0  0x000001087ccdf3 in GUIView::ProcessInputEvent(InputEvent&)
    4. #1  0x0000010b74effd in -[GUIRenderView doDrag:type:]
    5. #2  0x0000010b74f1be in -[GUIRenderView draggingExited:]
    6. #3  0x007fff29833f15 in -[NSDragDestination _draggingExited]
    7. #4  0x007fff295b5ee3 in NSCoreDragTrackingProc
    8. #5  0x007fff2a41c06c in DoTrackingMessage
    9. #6  0x007fff2a41c4da in DragInApplication
    10. #7  0x007fff2a41b4dc in CoreDragStartDragging
    11. #8  0x007fff295b537b in -[NSCoreDragManager _dragUntilMouseUp:accepted:]
    12. #9  0x007fff295b3caf in -[NSCoreDragManager dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:]
    13. #10 0x007fff295b30f9 in -[NSWindow(NSDrag) dragImage:at:offset:event:pasteboard:source:slideBack:]
    14. #11 0x0000010b70a8a0 in -[DelayedDrag DoStart]
    15. #12 0x0000010b70a978 in DragAndDrop::ApplyQueuedStartDrag()
    16. #13 0x0000010b721112 in GUIView::OnInputEvent(InputEvent&)
    17. #14 0x000001087cce12 in GUIView::ProcessInputEvent(InputEvent&)
    18. #15 0x0000010b74e5a4 in -[GUIRenderView processCollapsedMouseEvent]
    19. #16 0x0000010b70c549 in -[EditorApplication TickTimer]
    20. #17 0x007fff2de59ceb in __NSFireTimer
    21. #18 0x007fff2bbcca60 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
    22. #19 0x007fff2bbcc60c in __CFRunLoopDoTimer
    23. #20 0x007fff2bbcc152 in __CFRunLoopDoTimers
    24. #21 0x007fff2bbad362 in __CFRunLoopRun
    25. #22 0x007fff2bbac8be in CFRunLoopRunSpecific
    26. #23 0x007fff2ae9896b in RunCurrentEventLoopInMode
    27. #24 0x007fff2ae986a5 in ReceiveNextEventCommon
    28. #25 0x007fff2ae98436 in _BlockUntilNextEventMatchingListInModeWithFilter
    29. #26 0x007fff29232987 in _DPSNextEvent
    30. #27 0x007fff2923171f in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
    31. #28 0x007fff2922b83c in -[NSApplication run]
    32. #29 0x007fff2921ad7c in NSApplicationMain
    33. #30 0x0000010b74b1dc in EditorMain(int, char const**)
    34. #31 0x0000010b74b4a9 in main
    35. #32 0x007fff57adb3d5 in start
    36. Launching bug reporter
     
  2. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok I'll check that. I do not think it is related to quick search, but indeed a problem we need to fix at large.
     
  3. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Do you remember on which target you were dropping the element when the crash occurred?
     
  4. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    I caught it again on video, but this time it happen long after mouse release, and after the game object instantiated on the scene. (The first time occur even before releasing, I remembered sweeping across Project and Hierarchy dock back and forth)



    If I use Quicksearch to ping then drag from Project to Hierarchy, I never get this crash so far. Also I am using a track pad not a mouse.
     
  5. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    I submitted a temporary fix (1.2.6) for drag&drop in 2019.1 on OSX that shouldn't crash the editor, but it is possible you see some ONGUI error complaining about some unscoped stuff (you can ignore them for now)
     
    Last edited: Jun 14, 2019
    5argon likes this.
  6. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hi SugoiDev,

    I released version 1.2.6-preview that should improve scene object searches. Please give it a try with your project and let me know if works better for you.
     
    SugoiDev likes this.
  7. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Thank you! Although it no longer show the line to aim where I drop things, is this an expected side effect?

    licecap.gif
     
  8. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    You mean about the ping that happens? The ping seems to be delayed. I'll look into that. Thanks for reporting.
     
  9. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    No, I meant on the Hierarchy view. This blue line or blue highlight is gone when dragged from the quicksearch. So I don't know whether it will land as a child of something or as a sibling until I release left click.

    Screenshot 2019-06-16 02.43.10.png Screenshot 2019-06-16 02.43.18.png
     
  10. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok I'll check that. Thanks,
     
  11. Extrawurst

    Extrawurst

    Joined:
    May 22, 2013
    Posts:
    43
    I just uninstalled the package again because it keeps freezing the unity editor when I close it (interestingly this only happens if i never hit play before). This is very unfortunate because I really liked the package!

    I am on Unity 2018.4.2 (MacOS) with the package being up to date with `1.2.6-preview`.
    I also checked back in 1.2.4 and 1.2.3 - same behaviour.

    It always freezes when I hit CMD+Q and save unsaved assets with the 'Save Assets' dialog being empty rendered:
    upload_2019-6-19_15-34-22.png
     
  12. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok that's unfortunate. I'll try to repro on my end and provide a fix ASAP. If you could share a small project that repro this it would be awesome, otherwise I'll try to setup something up.
     
  13. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Version 1.2.7-preview has been released which fixes the issue you've reported.

    Thanks for feedback.
     
  14. Extrawurst

    Extrawurst

    Joined:
    May 22, 2013
    Posts:
    43
    Thanks for the quick response! Keep up the awesome work!
     
    jonathans42 likes this.
  15. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Hi, I have some feedback on 1.2.7. Often, the direct match entry returned way down below than expected. In this gif there is an object named exactly "TrialDialog", but upper entries returned are instead children of it. In VSCode Cmd+P for example, shortest direct match would come before things with longer suffix.

    licecap.gif
     
  16. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hi,

    Maybe that's because of the fuzzy search result score attribution. Can you try to open the filter window and expand Scene search provider and uncheck fuzzy. Let me know if the results are better.

    In all cases, the file name part should give a better score. We'll fix that.

    Thanks, for reporting.
     
    Baste likes this.
  17. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Thank you, I tried but it seems to not make a difference.

    fz.gif

    Oh! One more thing, if I use Alt+Left+R to activate a scene while something require a save, the dialog appears on the back of the popup. I could press enter/space blindly but ideally the popup should disappear.

    scene.gif
     
  18. Xarbrough

    Xarbrough

    Joined:
    Dec 11, 2014
    Posts:
    1,188
    A very nice addition to the Unity toolbox!

    I've just started testing, but some things I've noticed:
    • How do I specify that I only want results with an exact match? E.g. I'm looking for an object Hat but it also gives me HatHouse etc. Would it be possible to allow syntax like "Hat" which indicates that it must be exactly this name without any additions?
    • Mouse hover pre-selection is not instantly updated when the mouse moves. It lags behind. Is this to improve performance? It makes the window feel unresponsive to me.
    • Type queries should be supported, but not all types work, e.g. "t:Camera". I assume this will be added over time, but just in case, I wanted to point it out.
    • Can we extend the ability to combine different search filters? I saw that it's possible to combine t:Script and a script name (although some types are missing), but can we also, for example, search for a GameObject within only a specified scene. We often have multiple scenes open when working and I know I'm looking for the main character prefab instance in level x. I can imagine something like: MainCamera inScene:Level_1.1 or some sort of special syntax to support this feature.
    • Searching for GameObjects when there are 9 scenes open with a few hundred objects each takes up to 80ms. I think that's ok, but it's indicated in red, so probably it is expected to be even faster?
     
    Last edited: Jun 26, 2019
  19. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    t: only search for asset type from Assets folders like t: on the Project tab, but Camera is a component on GO so it doesn't work. It's not the same as t: on the Hierarchy search box. (So t:SpriteAtlas is valid on QS while t:SpriteAtlas is never valid on Hierarchy. Conversely t:Animator won't work on QS but works on Hierarchy )
     
  20. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hi, can you try that new version (quicksearch-1.2.8-preview.zip) and let me know if the scene search provider gives you better result. I added a search index that it built in the background. It takes around 30-40 ms to be the index, so the results will only appear after that time.
     

    Attached Files:

    Last edited: Jun 30, 2019
  21. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok we'll fix that too. We'll make sure the popup closes when a modal dialog opens.
     
  22. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    We could give a better score to exact match showing you these results first. I'll do that for the next release.
     
    Xarbrough likes this.
  23. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Instant hovering is only available with 19.3 with the new N* reskinning.
     
  24. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    You can already do "t:prefab myprefab", but if you want to rely on the asset search index, which is waaaaay faster than the AssetDatabase API, I suggest you add to your query the extension type of the asset (make you you update to latest version of QuickSearch). So typing "door png" will return everything that has door in its file name and png as an file extension.

    For scene object searches, you should be able type "<object name> <component name> ...".
     
    Xarbrough likes this.
  25. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Yes that should be ok, that said, we are still trying to optimize scene object search queries. You can try the version 1.2.8 I uploaded above and let me know if it feels faster. You can also disable fuzzy searches for scene objects which is much slower than a regular search. Open the filter window and uncheck fuzzy under Scene.
     
  26. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Thank you, the scoring seems to be as I expected now so far. However I notice that I seems to get a mix of Asset provider while I am using scene provider. Here the path says "/" but there is no such object on the prefab root that I am working on. The ping occur in Project panel, the context menu is the one from scene provider (has "select object in scene"), but executing that select the one in Asset panel.

    licecap.gif
     
  27. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Suddenly that problem seems to fix itself and h: has just scene objects now...

    But I found an another problem, when I am in the prefab the result contains those of the scene instead of inside the prefab stage. This results in not pinging what's in the prefab, plus you could select and inspect what's outside which is not possible to do normally.
     
  28. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hmm ok interesting. I fix that workflow too and add some tests as well. Thanks,
     
  29. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,338
    A piece of feedback:

    The quick search stores what I searched for last, and this persists over domain reloads. So if I search for SomeLargeName, close quick search, enter play mode, exit play mode, and then open quick search again, it automatically searches for SomeLargeName again.

    This is good, but that search takes a while, as (I assume) some kinds of caches are lost. This means that there's a large delay before the quick search opens - much longer than if there's not a search result that's stored.

    My suggestion is to wait until you have gotten the quick search window painted before you do whatever blocking action is causing it to wait for search results. It'd cause the search results to be empty for a short while before they show up, but it'd feel a ton more responsive.
     
  30. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Yes good suggestion. We are working on having Quick Search be more responsive in general by adding more asynchronous operations here in there. It should get better over the next releases.

    Thanks,
     
    Baste likes this.
  31. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Searching prefab stage should be fixed in version 1.2.8-preview. Let me know if it works for you.

    Thanks,
     
  32. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Thank you! One more thing, I can't Cmd+Z undo the prefab instantiated from dragging from Quick Search. (Where if I ping and drag from project, I could)
     
  33. Adrian

    Adrian

    Joined:
    Apr 5, 2008
    Posts:
    1,066

    Attached Files:

    Xarbrough and jonathans42 like this.
  34. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok interesting, I'll try that and fix it if possible.

    Thanks,
     
  35. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
  36. oxysofts

    oxysofts

    Joined:
    Dec 17, 2015
    Posts:
    124
    When I open up Quick Search, the console floods with this error until it is closed:

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. Unity.QuickSearch.QuickSearchTool.SetSelection (System.Int32 selection) (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:599)
    3. Unity.QuickSearch.QuickSearchTool.DrawToolbar (Unity.QuickSearch.SearchContext context) (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:1094)
    4. Unity.QuickSearch.QuickSearchTool.OnGUI () (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:558)
    5. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
    6. Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    7. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7d97106330684add86d080ecf65bfe69>:0)
    8. System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <7d97106330684add86d080ecf65bfe69>:0)
    9. UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:335)
    10. UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:329)
    11. UnityEditor.HostView.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:141)
    12. UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:278) (at ?)
    13. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
    14.  
    Looking forward to using Quick Search.

    edit: This error seems to appear before the one above.

    Code (csharp):
    1.  
    2. ArgumentException: The scene is not loaded.
    3. UnityEngine.SceneManagement.Scene.GetRootGameObjects (System.Collections.Generic.List`1[T] rootGameObjects) (at C:/buildslave/unity/build/Runtime/Export/SceneManager/Scene.cs:97)
    4. UnityEngine.SceneManagement.Scene.GetRootGameObjects () (at C:/buildslave/unity/build/Runtime/Export/SceneManager/Scene.cs:81)
    5. Unity.QuickSearch.Providers.SceneObjectsProvider.<.ctor>b__17_2 () (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/Providers/SceneObjectsProvider.cs:94)
    6. Unity.QuickSearch.SearchService.Enable (Unity.QuickSearch.SearchContext context) (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/SearchService.cs:681)
    7. Unity.QuickSearch.QuickSearchTool.OnEnable () (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:348)
    8. UnityEngine.ScriptableObject:CreateInstance() (at ?)
    9. Unity.QuickSearch.QuickSearchTool:ShowWindow() (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:1331)
    10. Unity.QuickSearch.QuickSearchTool:OpenQuickSearch() (at Library/PackageCache/com.unity.quicksearch@1.2.9-preview/Editor/QuickSearch.cs:1503)
    11. UnityEditor.EditorApplication:Internal_CallGlobalEventHandler() (at ?)
    12.  
    I'm guessing because of unloaded scenes!
     
    Last edited: Jul 10, 2019
    Xarbrough likes this.
  37. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Yes that might be it. If you have some time, would it be possible to create a small project with a scene setup similar to the one that spew the error above? If so, I could try to fix it for release 1.3.0.

    Thanks for reporting,
     
  38. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok the issue has been fixed for 1.3.0. 1.3.0 should be released by the end of the week. In case it is blocking you, I have attached a pre-release of 1.3.0 (so you can at least validate that it fixes your issue)

    Thanks,
     

    Attached Files:

    oxysofts and SugoiDev like this.
  39. sebastiengrenier

    sebastiengrenier

    Unity Technologies

    Joined:
    Jun 11, 2019
    Posts:
    96
    Hi everyone!

    1.3.0-preview has been released! It introduces a couple of bug fixes and new features. Here is the complete changelog:

    • [UX] Add the ability to enable or disable completely a search provider in the user preferences.
    • [UX] Add experimental Asset Store provider (disabled by default, see Quick Search preferences).
    • [UX] Add an experimental log search provider (disabled by default, see Quick Search preferences).
    • [UX] Add a spinner when search is in progress.
    • [FIX] Do not fetch scene root objects for invalid or unloaded scenes.
    • [FIX] Delay the track selection, keeping only the last selection to actually be pinged.
    • [FIX] Add support for one letter word indexing (i.e. Searching for "Rock A" should match asset Assets/Rock_A.png").
    • [API] Add asynchronous SearchProvider.fetchItems API.
    • [API] Removed the old asynchronous API.
    • [API] Port the ESS provider example to the new asynchronous API.
    • [API] Port the AssetStore provider example to the new asynchronous API.

    The most important change here is the replacement of the old asynchronous API in favor of the new asynchronous SearchProvider.fetchItems. This is a breaking change that will require you to modify the fetchItems function of your custom providers. The change should be fairly minimal if you don't want to use the asynchronous API.

    The signature of the fetchItems function has changed: it is now returning an IEnumerable<SearchItem>. To keep using the original synchronous version, all you need to do is return null, and use the items parameter as before. If you want to use the new asynchronous API, you should return an IEnumerable<SearchItem>. This IEnumerable<SearchItem> should come from a function that yield results, so that the API can fetch one item at a time. This ensures the UI is not blocked waiting (though it can still block if fetching one item takes a long time).

    Here is an example using the asynchronous fetchItems API:

    Code (CSharp):
    1. public class AsyncSearchProvider : SearchProvider
    2. {
    3.     public AsyncSearchProvider(string id, string displayName = null)
    4.         : base(id, displayName)
    5.     {
    6.         fetchItems = (context, items, provider) => FetchItems(context, provider);
    7.     }
    8.  
    9.     private IEnumerable<SearchItem> FetchItems(SearchContext context, SearchProvider provider)
    10.     {
    11.         while(ResultsNotReady())
    12.         {
    13.             yield return null;
    14.         }
    15.  
    16.         var oneItem = // Get an item
    17.         yield return oneItem;
    18.  
    19.         var anotherItem = // Get another item
    20.         yield return anotherItem;
    21.  
    22.         if(SomeConditionThatBreaksTheSearch())
    23.         {
    24.             // Search must be terminated
    25.             yield break;
    26.         }
    27.  
    28.         // You can iterate over an enumerable, the enumeration will
    29.         // continue where it left.
    30.         foreach(var item in someItems)
    31.         {
    32.             yield return item;
    33.         }
    34.     }
    35. }
    For a more complete example using the asynchronous API, you should look at the (currently disabled) AssetStore provider (com.unity.quicksearch/Editor/Providers/Examples/AssetStoreProvider.cs). You can enable it through the settings to see it in action.

    Thanks!
     
  40. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    etienne_unity likes this.
  41. Xarbrough

    Xarbrough

    Joined:
    Dec 11, 2014
    Posts:
    1,188
    Thanks, this improved my search results. My example is now working. When searching for "Hat" it gives me "Hat" first and "HatHouse" second. Overall, the search finds most objects very well, e.g. a "Background" prefab, etc.

    However, there is still one case where the prefab root object simply doesn't show up in the search results, no matter what I try. Here are two screenshots showing my search and the hierarchy where the prefab root with the exact name should be found and shown as the first item in the search results, but it doesn't appear there.

    FuzzySearch.jpg NoFuzzySearch.jpg
    The first image is with fuzzy search on, the second off.

    The prefab variant instance "Puk_Level_1.2" is unique in all open scenes, but the search window only shows child objects (e.g. the Curl or Hair GameObjects which are direct children of the root.).

    When I place the place the prefab in a new empty scene, the search finds one of the components on the root and puts it first.

    I've tested the newest version with our project and the search time went down from 80 ms to under 15 ms.
     
  42. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Ok we'll add support for parent object exact match. It shouldn't be too hard. Should be in version 1.3.1.

    Meanwhile if you know if the parent object has a different component than its children you can type a few character from its name.
     
    Xarbrough likes this.
  43. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    That's good. Also now the search for scene object is async, so even for very large scene it should feel more responsive.
     
  44. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Also looking at your screenshots, as a tip, you do not need to preserve the casing and keep dots and underscores. So instead of typing "Puk_Level_1.2", you could simply type "puk lev 1 2" and it should give you similar results.
     
    Xarbrough likes this.
  45. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hi everyone!

    Version 1.3.1-preview has been released. Here's the change log:

    - [UX] Show the async spinner while the scene and asset indexes are being built.
    - [UX] Removed the objects limit for the scene object provider.
    - [UX] Progressively show search item previews (preventing the UI to block when fetching large previews)
    - [FIX] Use the async fetchItems for the asset search provider returning result faster when using file system wildcard * (i.e. *.png)
    - [FIX] Optimize the scene object provider to build all indexes asynchronously.
    - [FIX] Optimize the insert and sort algorithm.
    - [API] Add new API SearchProvider.fetchPreview to fetch larger and slower preview of search item. fetchThumbnail is used to show a thumbnail and must be fast, then fetchPreview is called progressively to display a better and larger preview

    Thanks,
     
  46. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Hi Quick Searchers!

    Letting you know that we released another small update (1.3.2-preview) with minor fixes:

    [UX] Ignore filter ID casing in search text queries (i.e. "H:camera" will work like "h:camera")
    [FIX] Fix division by 0 when searching with no search provider enabled.
    [API] Expose new async API and add more documentation XML tags.

    I hope you guys love the recent versions. We are working hard making sure the searches are fast and feel responsive. There's still a few minor issues we need to fix, but we are getting close to become a verified package.

    I would like to thank everyone for trying out Quick Search so far. Recently we've reached more than 20k searches with this tool!

    upload_2019-7-25_9-9-11.png
     
    petey, SugoiDev, 5argon and 3 others like this.
  47. TriNityKA

    TriNityKA

    Joined:
    Mar 19, 2019
    Posts:
    7
    I installed the current 1.3.2 version in Unity 2018.4.4f1 but the compiler spits out
    The type 'Tuple<T1, T2>' exists in both 'ExCSS.Unity, Version=2.0.6.0, Culture=neutral, PublicKeyToken=null' and 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'


    .NET scripting runtime version is set to 4.x and API compability level is also .NET 4.x.

    Any ideas? It also happens with older versions of the package :S
     
  48. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,555
    Hi! Any chance I could extend a new provider by continuing from an existing provider? For example, I would like to do exactly like the scene provider complete with all the fuzzy logic and all the prefab stage/scene behaviour, except that I want to filter only a game object with a certain component where that component contains some specific field values, and also change all item's raw name to what I want based on that component so fuzzy search match against it instead of path, for example.
     
    SugoiDev likes this.
  49. SugoiDev

    SugoiDev

    Joined:
    Mar 27, 2013
    Posts:
    395
    Excellent request, @5argon
    I also have uses for that and actually needed to modify the scene provider too.
     
  50. jonathans42

    jonathans42

    Unity Technologies

    Joined:
    Jan 25, 2018
    Posts:
    514
    Right now the easiest would be to copy/paste the scene object provider, rename it and tweak it. But since it seems to be request by many, we could add some hooks to it.

    So to start, would it be enough to have a hook that does additional filtering using a user delegate?

    We could add an API like so:

    Code (CSharp):
    1. SearchService.RegisterProviderCustomFiltering("name_of_provider", (context, itemData) =>
    2. {
    3.      if (itemData matches)
    4.           return SearchItem.Keep;
    5.  
    6.      // return SearchItem.Discard; // Used to discard the item and proceed with the next item
    7.      // return SearchItem.Continue; // We didn't match anything, but continue with the regular filtering of the current provider
    8. }
    What do you think?
     
    5argon, SugoiDev and Xarbrough like this.