Search Unity

[RELEASED] Haste — Search Engine for Unity

Discussion in 'Assets and Asset Store' started by jimfleming, Jun 19, 2014.

  1. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    BETA

    Free version: http://u3d.as/content/barking-mouse-studio/haste-free/bc5
    Pro version: http://u3d.as/content/barking-mouse-studio/haste-pro/81k

    Haste is a quick launcher for Unity. Navigate your project with speed:

    - Search game objects in your scene
    - Search files and folders in your project
    - PRO Execute native Unity actions or custom MenuItems

    "Its like Spotlight or Alfred for Unity", said by a friend of ours.

    Features

    - "Fuzzy" searching allows you to find what you're looking for in just a few key strokes.
    - For example, need to find "Main Camera" in your scene? Just type "mc" and press enter.
    - Haste's custom indexing allows searching across your entire project or scene quickly.
    - PRO Since Haste is aware of custom MenuItems its easy to your own commands.
    - Works with Unity Pro and Free.

    Usage: open Haste at any time just press Command/Control+K and begin typing.

    I've been working on Haste for about a year now and I'm super excited about the dozens of new features we have planned over the next few months.
     
    Last edited: Feb 7, 2015
  2. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Does this work with project files too? I tried the free version to test it out, but I mainly need it for project files, not scene files. It seems to find the project files, but selecting them (hitting enter) does nothing. I would expect the behavior to open or highlight the item in the project view. Perhaps this functionality is only available in the Pro version? Or is this functionality not possible at all with Unity Editor?
     
  3. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi Ghosthowl! Project files should indeed work, even in the free version, however there was an issue with Windows paths and project files. I just pushed a fixed to the Unity Asset Store but it will be a few days before the changes are live.
     
    Last edited: Mar 12, 2015
  4. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Ah, that one works. I just realized though, to my mistake the project I was testing this on initially was Unity 5. Unfortunately, it does not work on project files in Unity 5.

    This is a great asset and could potentially save me a lot of lookup time! The only problem I have with it is that in my project (moderately big) it takes quite some time for the results to pop up (~4 - 7 seconds) at times. Sometimes after some searches that are close in range to other looked up files, the lookup time increases to near instant. I tried rebuilding the index in the preferences but the speed is the same.
     
  5. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    I'll definitely take a look at Unity 5 as it gets closer to release. Until then its too unstable (crashes all the time for me).

    Search time should be very fast but there's a lot of low hanging fruit for optimization. Could you send me a screenshot of your Haste Preferences? (Its in the "Haste" tab of the Unity Preferences.) Particularly the breakdown of the index counts so I can get a feel for the size of the project. My email is jim@barkingmousestudio.com

    Thanks!
     
  6. herpderpzerp

    herpderpzerp

    Joined:
    Feb 17, 2015
    Posts:
    6
    "I'll definitely take a look at Unity 5 as it gets closer to release. Until then its too unstable (crashes all the time for me)."
    It would be good if you looked into this sooner rather than later as any dev who has the option should be moving over to 5 asap
     
  7. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Took a look today. Haste works in Unity5 but you'll need to enable the sources in the Unity Preferences > Haste tab since they're not enabled by default. Since Unity5 is still early beta, however, it could break any day and that's out of my control.
     
  8. herpderpzerp

    herpderpzerp

    Joined:
    Feb 17, 2015
    Posts:
    6
    huh, interesting, thank you : )
     
  9. vicegold

    vicegold

    Joined:
    Mar 31, 2014
    Posts:
    6
    Awesome plugin, bought it today. Could you provide an option to just remove one letter when pressing backspace? Not everything typed before?
     
  10. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    @vicegold Thanks for your support. I agree with you about an option to toggle the backspace behavior. The next release will be focusing on performance but the one after that has a task filed to add setting for that.

    I'm aiming for weekly releases right now so it should be available soon. The only caveat being that this week is GDC in San Francisco.
     
  11. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hey everyone! A new release for Haste just went live today. Here's a snapshot of the release notes:

    v1.6.0
    ===

    - Now 20x faster and handles large projects.
    - Fixed a bug where sources were not enabled by default.
    - Search by asset type using ".cs" or ".material".
    - Keyboard shortcut now configurable (see README).
    - Unity 5 support!
    - PRO Source code is now bundled directly instead of the manual email process.
     
  12. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    No matter what I type in the Haste 1.6.0 window I get no results but these errors in the Console:

     
  13. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi Don,

    Sorry to hear that. That's for the error report, it sounds like a quick fix. I'm removing filename extensions from files and Haste is finding a file without any extension. If you have Haste Free I'll post the fix here today. If you have Haste Pro can you send me an email via support and I'm happy to send you the early build directly as soon as its fixed.
     
  14. iviachupichu

    iviachupichu

    Joined:
    Feb 6, 2015
    Posts:
    28
    I'm a huge fan of Quicksilver/Alfred so this asset is definitely going to be imported into every new project.

    One thing: Is there any way to avoid expanding folders in the side of the Project window? It's a little problematic when tons of random folders are being expanded on the way to your actual destination.

    Also, what sorts of features do you plan on adding to the Pro version? Right now the free version seems to be sufficient for most purposes. Is it possible to create primitive GameObjects directly in the Pro version, for example?
     
  15. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hello!

    That's an interesting conundrum. Since the actual selection is handled by Unity I'm not sure there's a simple fix. I could add an option to toggle off the soft selection but that creates other difficulties for multi-select and drag-and-drop. I've added it to my Trello board to take a look at preventing that behavior.

    The main additional feature in Haste Pro is executing menu items like creating primitives, instantiating prefabs or changing your window layout. If you're ever been annoyed by clicking "Edit", then "Project Settings", then "Player" every time you need to change your per-platform build then Haste Pro has what you need. As another example, more than half of the commands used in this speed run video are only available in Haste Pro:



    Another big feature of Haste Pro is full source code access which can be valuable for many studios.
     
  16. iviachupichu

    iviachupichu

    Joined:
    Feb 6, 2015
    Posts:
    28
    Hmm, sure why not. Will pick up the Pro version. Honestly, the Free version is already worth at least that much.

    Thanks for the prompt response! Looking forward to see where this asset goes.
     
  17. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Thanks for the fix and support, Jim!

    :)
     
  18. iviachupichu

    iviachupichu

    Joined:
    Feb 6, 2015
    Posts:
    28


    The search algorithm has some strange quirks that were harder to notice in the Free version. It probably stems from your clever shortcut that allows you to use "mc" for Main Camera. Problem is that in this case it's picking out letters from the middle of the words that make no sense. Judging from these results, the algorithm picks out the letters in sequence throughout the entire paths then sorts results in alphabetical order.

    At the very least, exact matches should be pushed to the top. For non-contiguous letters perhaps enforce camel case. I can see how users might use "atn" to jump to "Assets/Tools/NodeCanvas", and that's really cool functionality. It just doesn't make much sense to use "cube" to jump to "Component/UI/Selectable". To be more specific, it would make more sense for this "acronym notation" to only pick out non-contiguous letters if they are capitalized or immediately preceded by a slash.

    This will kill shortcuts like "de" if users name their script "damageeffect" or "Damageeffect", but Unity generally encourages camel case so it makes sense to provide proper functionality for the norm than a shortcut for non-general cases. The absolute optimal solution would be to sort search results with these priorities (and alphabetically within):
    1) Contiguous (Exact Match)
    2) Non-Contiguous, Capitalized and First Letters
    3) Non-Contiguous, Non-Case Sensitive

    Very satisfied with this purchase! So far this is the only oddity that I've noticed. I've already opened it about 100 times just while setting up basic scripts. =P
     
    Last edited: Mar 19, 2015
  19. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Yes, noticed this too, hits that would spell out my search query by using letters in different words.
     
  20. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Thanks everyone for your support!

    Indeed, exact matches and "prefix" matches ("cub" of "cube") should be pushed to the top. I recently rewrote the searching for better performance and it still needs a few tweaks. It does prefer "word boundary" matches like capital letters and after slashes but there are a lot of different heuristics used for performance reasons. If you're curious take a look at HasteResultComparer.cs in the included source. This script controls how results are ordered. Be aware that a lot of the ordering is a careful tradeoff between accuracy and performance (HasteResultComparer gets called a lot when sorting the results).

    Regardless, I'll definitely get the exact and prefix matches in the next release. If you want, send me an email and I'll send you the builds as soon as they're available so you can bypass the review process for that version.
     
    iviachupichu likes this.
  21. theSoenke

    theSoenke

    Joined:
    Dec 4, 2012
    Posts:
    106
    It would be useful if i could change the shortcut for opening haste, because probuilder also uses ctrl + k
     
  22. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi @theSoenke, in the latest release you can do that now. Its exposed inside Assets/Haste/Editor/InternalResources/HasteShortcut.cs

    EDIT: Basically just change both "MenuItem" declarations to use the keyboard shortcut of your choice. There's a big comment at the top of that file that goes into more detail or see http://docs.unity3d.com/ScriptReference/MenuItem.html

    Sorry there's no visual way of doing this. Unfortunately its just not functionality provided by Unity (yet!)
     
  23. theSoenke

    theSoenke

    Joined:
    Dec 4, 2012
    Posts:
    106
    Thanks. Works great now
     
  24. iviachupichu

    iviachupichu

    Joined:
    Feb 6, 2015
    Posts:
    28
    Thanks! Looks like every property is given equal weight at the moment so tweaking it for correct behavior in the meantime shouldn't be too bad.

    IS_HASTE_PRO seems to be set to false in the source by default and MonoDevelop isn't letting me jump to its declaration. Keeping the source and the DLL causes clashes, so modifying is a little difficult. xP
     
  25. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Yah, you'll have to remove the dll to use the source. I usually set `IS_HASTE_PRO` in the player settings or during the build process since both the free and the pro version use a lot of the same code. Adding a `#define IS_HASTE_PRO` to Haste.cs should work.
     
    iviachupichu likes this.
  26. theSoenke

    theSoenke

    Joined:
    Dec 4, 2012
    Posts:
    106
    When searching something i get this error. It usally happens when searching for a gameobject, but not always

     
  27. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi @theSoenke, is this in Haste Free or Pro? I'll post the fix for the free version here as a .unitypackage. For pro, please send me an email (jim@barkingmousestudio.com) with your invoice # and I can send the fix directly.
     
  28. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
  29. theSoenke

    theSoenke

    Joined:
    Dec 4, 2012
    Posts:
    106
    currently using Haste Free, but definitly planning to buy pro :) v1.6.1 fixed the error
     
  30. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Glad it fixed the problems and thanks!
     
  31. mdrotar

    mdrotar

    Joined:
    Aug 26, 2013
    Posts:
    377
    Hey, I was trying out Haste Free today. I like it a lot and would be worth the upgrade to Haste Pro except for 2 issues.
    1. As I type, it selects the objects in the project and hierarchy windows as it finds things. I like that feature but it makes a mess of my project and hierarchy windows. Everything ends up expanded. Would it be possible to undo expansions as it moves on to selecting another object?
    2. I have 3 monitors and the Haste window always pops up in the middle of my center monitor instead of over the Unity window. It sort of breaks the work flow to have to look back and forth to use to tool. Could this be fixed to have the window pop up in the center of the Unity window/monitor?
     
    Last edited: Apr 2, 2015
  32. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi mdrotar,

    Yah, that first one is on my list. Unfortunately setting the Selection.objects property (or similar) triggers this. I don't think I can prevent that. However, the "soft" select as your scrolling through wouldn't be necessary if you could quickly look at the object in more detail within Haste which is my plan. Stay tuned!

    Whoa, 3 monitors? I'll look into this one today. If I can get the position of the Unity window it should be easy to fix. Here's what I'm using to position the window currently:

    this.position = new Rect(
    (Screen.currentResolution.width - HasteStyles.WindowWidth) / 2,
    (Screen.currentResolution.height - HasteStyles.WindowHeight) / 2,
    HasteStyles.WindowWidth, HasteStyles.WindowHeight
    );
     
  33. mittense

    mittense

    Joined:
    Jul 25, 2013
    Posts:
    168
    This is absolutely fantastic.
     
  34. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Thanks everyone for the support this week!

    I've got another release completed to send off for review this weekend. Here is a quick preview:

    - Faster list render performance
    - Faster startup time:
    - Initializing dynamic fonts would sometimes take over 1s the first time you opened Haste. No more!​
    - New backspace behavior:
    - Pressing backspace will now only delete single characters like normal
    - Holding backspace for 0.2s will clear the query (this should be familiar from mobile keyboards)​
    - Indexing now pauses automatically during lightmapping
    - Word boundaries should now include numbers
    - Tweaking search result prioritization
    - Bug fixes
    - New setting to reposition Haste /cc @mdrotar
    - Style/color/contrast cleanup especially on light theme​

    Since Haste is in beta most of the focus is on polishing the core features but some awesome new features are coming soon: https://www.dropbox.com/s/5n8uymsqub8xddn/HasteTrello.gif?dl=0 (first column is this next release, red = bugs, yellow = performance, green = feedback/suggestions, everything else = new features!)

    If you've purchased Haste Pro and you are interested in helping me test out new releases please send me an email: jim@barkingmousestudio.com (be sure to include your invoice number)
     
    Don-Gray likes this.
  35. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    The new settings (backspace, render performance) look good! :)
     
  36. faduci

    faduci

    Joined:
    Jul 13, 2014
    Posts:
    14
    Single character backspace is already possible by using the classical terminal shortcut CTRL-h instead of BACKSPACE, at least on OSX. I just found it by accident when my finger memory kicked in. As I wasn't sure if this might have been an undocumented feature introduced in 1.6.1, I tried it with the oldest version of Haste free (1.5.1) I could find in my backups. It worked there too, so I assume this is a standard feature of the text entry component.
     
  37. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Nice, I had no idea that was there. It works in Chrome too so its probably an OS thing. A good short-term solution for anyone who found the default backspace functionality unintuitive.
     
  38. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hello world!

    It's been a busy few months and I have a big release ready to go out this weekend! If you'd like to test it out, read on...

    Here's a pre-release copy of Haste Free v1.8.0 (consider it beta-quality until it lands on the Asset Store):
    https://www.dropbox.com/s/pn195330lz6gwi6/HasteFree.unitypackage?dl=0

    Shoot me an email with your invoice number to try out Haste Pro v1.8.0—you can skip the invoice number if we've talked previously.

    Release Notes
    v1.8.0
    • Fast async search! Haste is much more responsive in large projects.
    • Added new setting for disabling "soft" selection while scrolling through results.
      • This is the best solution to prevent expanding the hierarchy and project views.
    • Added support for Home, End, Page Up and Page Down to search results.
    • Added context menu item for ignoring assets in Haste (see README).
    • Added better interface for ignored paths in Haste's preferences.
    • Improvements to search results to filter out unlikely matches.
    • Fixed bug with some paths being considered invalid.
    • Windows paths should be more consistent.
    • Many more tweaks and bug fixes!
    I think this covers many of the most requested features and existing bugs. If I missed anything, please do let me know and I'll make sure its top priority.

    If you'd like to help guide the direction of Haste then check out this nifty survey: http://goo.gl/forms/cTEcTVfHvX

    Thanks everyone!
     
    iviachupichu likes this.
  39. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Just submitted this to the Asset Store, fingers crossed!

    Also! Unity version 4.6.0+ and 5.0.0+ are now supported which is a wider range than previously. If you experience any issues please email me.
     
    Last edited: Jun 19, 2015
  40. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Woo! v1.8.2 is now live!
     
  41. sballew7

    sballew7

    Joined:
    Sep 3, 2013
    Posts:
    76
    I love Haste. Thanks for a great asset.

    One issue I have with it is that all of my directories are expanded after I use it. It looks like as I type and it is continuously searching, it is expanding all the folders with possible matches along the way.

    I know that is a small issue, but my project explorer becomes pretty difficult to look through after using Haste. No idea how this could be improved, but figured I'd put it on your radar!

    Thanks again for Haste.
     
  42. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi @sballew7, I'm glad you're enjoying Haste and I totally understand the annoyance. It's not currently possible to both display something in the inspector and avoid expanding folders. As a stopgap, Haste includes an option to delay selection until you press "Enter" so items aren't expanded. You can find this option at the bottom of Haste's preferences in v1.8.0+: https://www.dropbox.com/s/3qif1f5zyqup10t/Screenshot 2015-07-05 09.39.39.png?dl=0
     
  43. sballew7

    sballew7

    Joined:
    Sep 3, 2013
    Posts:
    76
    Perfect, that should be enough for me. Thanks!
     
  44. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi again, I have another big release ready to go out this week!

    (Pre-)Release Notes
    v1.8.5
    • Haste Recommendations (Pro exclusive)—Haste now intelligently remembers your recent selections and displays them when you open Haste.
      • This is a big change as it involves serializing parts of Haste's search index and changes how objects are represented in that index. Eventually, it will serialize the whole index so that the index can be persisted across compilation and reopening Unity.
    • Haste will now pause script compilation while it's open to prevent it from being destroyed.
    • Various tweaks and bug fixes.
     
    Immi likes this.
  45. Don-Gray

    Don-Gray

    Joined:
    Mar 18, 2009
    Posts:
    2,278
    Cool, thanks! :)
     
  46. Immi

    Immi

    Joined:
    Jun 2, 2011
    Posts:
    81
    Fantastic Tool...Thanks....!!
     
  47. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Be aware there is a bug in the latest release. A fix has been submitted to the asset store and should hopefully go live in a few days.

    If you encounter the issue here are the steps to fix:

    1. Delete `recommendations.asset` from Assets/Editor/Haste/InternalResources.
    2. Right-click the Haste folder and select "re-import".

    I accidentally submitted the build with my .asset file and it shouldn't be there since it's per-user.
     
  48. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    The fix has been approved. Please let me know if anyone encounters any issues.

    Thanks!
     
  49. frikic

    frikic

    Joined:
    Dec 22, 2011
    Posts:
    44
    Hi there,
    i have a problem when trying to ignore folders, when right clicking on folder inside Assets folder, Ignore option is grayed out?

    HasteIgnoreError.png

    So I've read the manual and there is explained that is should just work the way i tried to do it.
    Hope you can help me and thanks for this great asset!
     
    Last edited: Sep 28, 2015
  50. jimfleming

    jimfleming

    Joined:
    Nov 13, 2012
    Posts:
    32
    Hi frikic! That's odd. It definitely is working for me here.

    - What version of Haste do you have installed? You can see this by opening the Unity preferences and clicking the Haste tab. (Have you updated from the asset store recently?)
    - Which OS are you using? Sometimes the pathing is weird on Windows.
    - Does it work if you add the path manually in Haste's preferences?

    We'll get it worked out.