Search Unity

Grab Yer Assets (GYA) v3 - UnityPackage Import & Management

Discussion in 'Assets and Asset Store' started by Xeir, Feb 18, 2014.

  1. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Asset Store Link: Grab Yer Assets

    Grab Yer Assets (GYA): Makes accessing, managing and importing your (offline/downloaded) Asset Store & Exported packages a breeze.
    • import assets without going to the Asset Store window or manually searching through your folders
    • find an asset in your collection quickly
    • have access to multiple user asset folders for organizing your assets
    • keep track of multiple versions of one or more assets
    • organize assets into groups
    • import a group of commonly used assets at one time
    • tag your favorite assets
    • .. The list goes on .. So feel free to peruse the forum, ask questions, etc.
    GYA's feature set make it a prime candidate for being the first asset loaded into any project. After that, simply use GYA to import the rest of your assets with ease.

    Notes:
    - GYA is not an asset/package downloader, nor has it ever been meant to be.
    - GYA should be manually refreshed anytime that assets have been downloaded/updated from the Asset Store or if any file actions have been performed externally of GYA that could cause the file info to become invalid or outdated.

    Notes for GYA v3.19.x +:
    PLEASE NOTE: While 'Overwrite Protection' & 'Remove Versions' should be perfectly safe to use, it is highly recommended to have a backup of your Asset Store folder just to be safe.
    This is always a good idea in any case.

    Important Note regarding 'Asset Overwrite Protection':
    This feature is NOT for everyone, it is primarily intended towards those that wish to maintain multiple versions of ALL of their assets.

    What to expect IF you enable this:
    - Your Asset Store folder WILL grow rapidly (disk space & # of files) as you update assets.
    - You will have to delete any older versions that are not wanted, as older versions are no longer overwritten when updated.

    So .. ONLY enable this IF YOU HAVE NEED OF IT!


    What's new in v3:​

    Optimizations:
    - Collection (Package/Folder) scanning re-write to add Indexing greatly improves subsequent 'Refresh' times
    - UI/Scroll View re-write, can now display 10k+ assets without slowing down.
    - Overall, a good size re-write with greatly improved code separation & numerous other internal optimizations.

    These changes give GYA a noticeable performance leap which was the goal.
    GYA v3 can now easily maintain/scan/display 10k+ packages.

    UI improvements
    :
    - Improved 'Preference' handling for easy access to: Quick Reference, Preferences, User Folders, Groups, Maintenance, etc.
    - Improved 'User Folder' & 'Group' management
    - Version locking (optional) of packages within Groups. (AS packages only, n/a for Exported packages)
    Right-click on any asset in the Group, select 'Lock Version for this Group' to select which version to lock.
    Say that you have a project that *requires* a certain version of an asset, THAT version can be locked to it.
    That way, if you want to use a Group more as a Project Group, you have the option.
    - Improved multi-version list view and handling
    - 3rd Toolbar (optional) added for Quick Access

    3rd-Party Asset Integration:
    - Package2Folder (by focus) support has been added to allow for importing assets into a user specified folder within the current project 'Assets' folder

    -- NOTES:

    (1): The following are disabled by default, but can be enabled in the Preferences as desired.
    'Persist Mode' & 'Purchased Assets' list retrieval.
    'Persist Mode' is not currently enabled for Linux.

    (2): GYA v3 uses a different file setup from v2. 'GYA Settings.json', which contained both the Settings & Groups has been split into separate files, 'GYA Prefs.json' & 'GYA Groups.json'.
    GYA v3 will automatically import and backup your v2 (2.15c15j +) Settings and Groups the first time it is run.
    Changes made to the Settings or Groups using v2 AFTER the initial conversion, will NOT be carried forward to v3. So, it is best to upgrade any projects using GYA at the same time, to avoid making changes with an older version.

    (Left) All Assets View 'The default view' - (Right) Categories Menu
    UI 1.png

    (Left) Publishers Menu - (Right) Search & Sort Menu
    UI 2.png

    (Left) Selected Assets Menu - (Right) Individual Asset Menu 'Right-click'
    UI 3.png
    Prefs 1.png
    Noted contributions and thanks!:
    - Eagleeyez was kind enough to make a video of GYA in use. You can find it .. HERE
    - OnePxl, who created the collection icons and for providing use of the 'Fast Asset Store'.

    Color Chart for Collections:
    Green = Asset Store
    Blue = User Assets
    Plum = Standard Assets
    Orange = Old Assets that have been consolidated
    Red = Old Assets that have not yet been consolidated

    Features:
    • Unity 2017/5 Ready
    • Scan/Show multiple Asset Store Folders
    • Easily access your assets (*.unityPackages): Asset Store, Standard Assets, User Selected Folders, Old Assets
    • Single & Multiple asset import
    • Supports multiple User Asset folders which can be located on another drive, share, NAS, etc.
    • Persist Mode - Maintains a copy of GYA in Standard Assets for easy access when creating a new project or loading GYA into an existing project
    • Unitypackages within the local project directory will show up at the top of the All collection. i.e.- Unitypackages that are imported into a project as part of a bundle.
    • Collections are color coded for easy visual reference
    • Groups (Create, Add, Rename, Delete)
    • Favorites (Which is the default Group 0, any asset added to this group will have a star placed next to it for easy reference)
    • File Handling with confirmation prompts
    • Handles Asset Store packages and Exported packages
    • Multiple Search & Sort options
    • Info panel to show asset details
    • Automatically finds and shows any Old asset versions
    • Show all available versions when selecting an Asset
    • Consolidate (Move & Rename with version appended) Old Assets into a separate folder “../Asset Store/-Grab Yer Assets (Old)”
      Makes it easy to backup, delete or just to keep them separated from your updated assets.
    • Direct access to Asset Folders
    • Direct access to Asset URLs (Unity or your default browser)
    • Copy Asset Path to Clipboard
    Usage:
    Refresh Icon: Rescans the folders and rebuilds the asset/package list.
    Left-Click: Toggle asset for multi-import
    Right-Click: Display popup to load the asset or open the assets folder or URL
    Up/Down Arrow: Cycle through the various Asset views (Asset Store, Standard Assets, Old Assets, User Assets, Groups)

    Information and help regarding the 'Purchased Assets' list:

    IMPORTANT NOTE: Web data integration is DISABLED due to changes in the Asset Store

    GYA v3 works with Unity 5.x and up
    Platforms supported: OS X, Windows & Linux

    Your feedback is always welcome and reviews are always appreciated.

    Asset Store Link: Grab Yer Assets
     

    Attached Files:

    Last edited: Feb 6, 2022
  2. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    Actually… how about saving the descriptions locally so we can search through them? And a field for additional notes, also searchable. And an ability to add features to a central database, so that you can search for a certain feature (say making roads from splines) and you would get a list of assets that can do that, including ones you don't have. And tracking prices over time? Etc…

    This looks great, I hope it's approved soon, I want to buy it.
     
  3. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    OnePxl: I had plans to make use of the embedded description inside the unity package files and easily added the code that allowed for searching the description. However, I quickly found out that the embedded description appears to be an optional object, so not every file includes it. With that in mind, it is worthless to search on the included object at this point as it cannot be relied upon. That leaves scrapping the website to gather the descriptions. I'll give some thought to this.

    The other features would probably involve a web server/services to maintain a complete list of assets, data, pricing, etc. While setting up web services to do just that is outside the planned scope, it is something that I will keep in mind.

    I am actually surprised there isn't a site already for tracking asset prices, at least not that I've run across. And I have to admit it would be useful as I have bought the majority of assets when they were on sale.

    Searching by author (publisher) was added, but may change that to be a simple drop down list for ease of use. Makes it easy to see all the packages by a particular author.

    Thank you for the kind words! I hope you will find it as useful as I do.
     
    Thanathos likes this.
  4. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    I'll be honest, I was contemplating writing an asset like this myself. To that end, I have researched how to authenticate with the asset store, giving access to the wish list/bought items/etc., as well as querying all asset info. All through JSON. Maybe I can share those findings? You get a ton of extra info on the asset that way.

    I was planning to either use a github repository for the features per package: for a single, central source for the extra info (like direct links to the documentation/homepage/etc. and metadata like preview picture URLs), or a service like Parse.com for the other kind of data.

    Same here. I'm lacking the time, otherwise I would set one up myself.

    I hope so, too! Looking forward to the release!
     
  5. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    I haven't looked into tighter Asset Store integration as the main goal was for something quick, easy, and not reliant on the Asset Store. Adding in features that can optionally complement that may have it's uses balancing need/want/function, so I would be willing to look over any information.

    I can understand the lacking time, I'm usually working on the road but had a break and decided I needed a project to get more familiar with Unity so choose to do this as it served a purpose for my own needs. I wanted an easier way to import my assets as I'm always testing/playing with any packages I purchase seeing if I can come up with ideas, etc. for a project. I'm going to take a few more days break then probably see about adding in the category and group/favs integration. I would like to hear back from Unity first to see if there is anything I need to address, but we will see. Being my first submission, hoping I didn't make any mistakes, but who knows.

    Enjoy the weekend!
     
  6. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    sounds great.. I'll purchase it with a smile on my face :)
     
  7. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    That's what I like to hear, someone that's happy even before it's available, grin.
     
  8. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    I've now purchased it with a smile on my face :)

    Nice work :)

    are you planning to have it show if an update is available for assets? I updated my assets before I imported yours, so maybe you already have something there?
     
  9. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Well, that was quick, hehe. I was just checking my email and saw that it was accepted. Just popped on to post that it's now available and you beat me to the punch! Gotta love it.

    GYA is fully based offline at this point. All data is pulled directly from the unity package files and simply hitting the refresh button in the upper right rescan's the folders/files on the fly. I have thought about possibly adding in an optional timed refresh but initially wanted to keep it as clean and smooth as possible.

    I will be giving some thought to integrating more closely with the Asset Store. I'll have to do some research on it.

    Look forward to hearing what you think about it!
     
  10. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,749
    hey Xeir,
    i'm especially interested in the version management as this annoys me in the current form of unity's asset handling. so does your package somehow keep track or find out the version of an asset which is imported into an project?

    can you add the option to completely remove an imported asset (also when things have been moved around for cleanup)? as it becomes more and more difficult to erase everything in a large project when it is spread over several folders.

    anyway a good asset on my wishlist.
     
  11. BuildABurgerBurg

    BuildABurgerBurg

    Joined:
    Nov 5, 2012
    Posts:
    566
    No I think it's best with refresh buttons :) what I meant was if it would indicate that there was an update available for a particular asset, no worries anyway, it's no biggie :)

    However are you planning of implementing a way for us to categorize them, eg Art, Ai bla bla or add tags to assets?

    Thanks again
     
  12. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New feature for next version: Persist mode - If enabled, disabled by default, it will make a copy of itself in the Standard Assets folder for ease of getting to when starting a new project. It will also keep the copy in Standard Assets up-to-date automatically with the copy in your Asset Store folder so you never have to worry about it. This was done as Unity shows the files in the Standard Assets folder at the top of the list.

    exiguous: The only version management that is dealt with at the moment is with finding out-dated *.unitypackages as I can look inside the file and extract the version data.

    It deals with the unitypackage files that are available for import. It does not look at already imported assets and I've not looked at nor am I familiar with how Unity keeps track of already imported assets, whether it's by metadata, guid, etc., so I'm not sure if that is even remotely possible. Might be something to look into down the road, but it is currently beyond what Grab Yer Assets was initially intended to do.

    MoHoe: Determining if an update is available for a given asset would require tighter Asset Store integration by whatever means Unity currently offers apart from manually scrapping the data from the website. It is something that I will be looking into in the future.

    And yes, I will be adding in category separation along with groups and favorites.
     
    Last edited: Feb 26, 2014
  13. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14c04j

    Features:
    Persist mode as explained in the previous post, for ease of getting to when starting a new project
    Improved Search/Sort options
    Search drop-down moved to the search bar icon
    Headers added
    Info pane setting now saved
    Code restructured for ease of reading

    Thanks everyone!

    Update:
    Realized Sort by Author wasn't also sorting by title, already fixed, will be in next update.
    Group handling is being worked on now.
     
    Last edited: Mar 6, 2014
  14. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Hi,
    Great idea.

    I think a *must have* feature is warning that an update is available for a package.

    I also use a lot of packages for rapid prototyping ideas and keeping packages up to date is a pita.

    Edit:
    I just picked this up, but I'm a little confused.

    Is old assets supposed to list what packages are in the current project?
    If so, it's not listing all of them.

    or is there another list that shows all asset store packages in the current project?

    ty/
     
    Last edited: Mar 7, 2014
  15. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    nice asset well worth checking out!


    what would really be helpful is option that will go through the asset list and go to unity website and tell me of any asset that there has been an update for. this could be done by scraping the html and parsing out the version info on the asset and comparing to the local copy and giving list or highlight of the ones that there are updates for and some button to open up the asset store page for them so I can more quickly get the update

    what would even be better is to work with unity to download the updates automatically. I mean unity 3d should have everything need to so something like this somewhere in there api its just of matter of putting the code together... if some apis are missing work it out with unity developers I bet they would love something like this.


    also what would be nice is way to delete old versions. I mean its ok to archive them, but if one does not need them have way to select and click delete or press delete key

    anyways best regards and keep plugging away at it until its done!
     
  16. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    sonicviz: Old assets are unitypackage files in the Asset Store folder that were left behind when you updated and asset from the Asset Store and it either has had it's category or name changed, so the update didn't overwrite it, it just placed it somewhere else. With that in mind, I added a feature to find these older versions and with a click you can move them all to a designated folder, to either leave there just in case, or to delete as you see fit.

    GYA deals with the actual files that can be imported, *.unitypackage files downloaded from the Asset Store or that have been previously exported by yourself, etc. I do not know if there is any easy way to detect already installed packages or not, but it is something I may look into down the road.

    im: Tighter Asset Store integration is something that has come up previously and it is something that I will be considering later on once I determine what can be done and how. Trying to make things easier when dealing with packages to import is the goal.

    Just started with having an option to move the old assets so the user can decide what to do with them, that's why I added a button to open the old asset folder directly. Trying to be cautious initially. However, deleting and cleaning up of empty folders in the Asset Store folder is already planned for later on.

    Once I find out what api's, etc. are available for dealing with the asset store directly, I'm hoping there will be lots of possibilities as to what can be done.

    Appreciate the support!
     
  17. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Thanks for the clarification.

    To be really functional it needs version and upgrade notifications of installed packages.

    Currently, as near as I can tell from playing with it so far, it's just a slightly faster way to browse packages than using the Standard Asset store interface with a small side benefit of managing old packages directly instead of using explorer/finder.

    Unity really needs a better system for keeping installed packages up to date.
    It really is a pitfa at the moment if you do a lot of rapid prototyping.

    Anyways, keep pluggin away at it. Good luck.
     
  18. Eyehawk

    Eyehawk

    Joined:
    Dec 24, 2012
    Posts:
    288
    Hi Xier, I seem to get an error as soon as I fire up the GYA editor from a new project, and then the window is blank.
    These are the errors thrown:
    $gyaerror.jpg

    My current version is: 4.3.2f1. Can you please help me to get this going?
     
  19. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Let me do a quick check and see what I find.

    Did some testing with a fresh project, and with updating from the old version and didn't notice an issue that would cause that.

    EDIT: Sent you a private message so we can see about getting this resolved.

    Update notice for version: 14c04j
    Anyone updating to the new version, please right-click on the Grab Yer Assets folder and select reimport. Just found out that the newly included textures are not being automatically utilized. This will fix it till the new version gets posted.

    This only occurs when updating.
    Fixed in next version.
     
    Last edited: Mar 8, 2014
  20. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14c08h

    Features:
    Fixed: Textures not loading after update fixed
    Fixed: Prev/Next not wrapping under a certain circumstance
    Fixed: Sort by Author wasn't also sorting by title

    Re-worked the json handling and cleaned up a lot of related code
    Moved sort options to search icon, should have been done in last update
    Added headers for Sort by Size
     
    Last edited: Mar 9, 2014
  21. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Thanks to Eyehawk's assistance, the error he was having has been resolved and I will be submitting an updated package after I have finished re-checking everything.

    Improved error handling during processing of unitypackaes and creation of the resulting json file with some additional error handling where needed.

    New version has been submitted: 1.14c16k

    Not sure what the delay is in the last submission, but I will be pushing out a new version in the next few days in any case, some of the forthcoming changes will include:

    - Minor UI changes to make for a cleaner UI/User experience
    - Old Asset routines re-worked
    - Delete Asset (with confirmation)
    - Copy to Folder: User Assets (with confirmation, appends version)
    - Move to Folder: Old Assets (with confirmation, appends version)
    - Found and solved an issue where User settings could revert to default values under stress testing (forcibly crashing GYA)
    - Descriptive header added to Sort by Version ID,
    - File versioning added to the data file to allow for easily handling changes between versions
    - Added confirmation and details on enable/disable of Persist mode

    Although I will be including some basic file handling in GYA, I still recommend doing the heavy lifting by normal means.

    File functions are purely for convenience as they are performed in the same thread at this time. Once the file action is complete, there will be a notice in the console log. In general, this will be instantaneous, excepting the copying of large files as to be expected.

    I use the Copy feature myself to backup the current GYA official asset that I have previously downloaded from the Asset Store prior to downloading the next official version. That way I can easily maintain a local copy of submitted versions as I choose.

    Note: Group/Favorites functions are still being worked on and will be included in the coming weeks.

    Edit: 1.14c16k is now available on the Asset Store. With that, I'm going to hold off a few more days, maybe till the end of the week, as I work on the groups and favorites.
     
    Last edited: Mar 26, 2014
  22. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Just an update before I head out for a week long project. I will check email and the forum when able.

    Along with the above features, groups/favorites has been implemented.

    These features are being tested now and when I return and have gone over anything that needs to be addressed with the new version, it will be submitted to the Asset Store.

    Just don't want to do a last minute push when I'm heading out for a week. If anything, that is when something unexpected will occur.

    Now that GYA is maturing into what I initially envisioned for an offline *.unitypackage manager, I will be raising the price when the new version is submitted when I return.

    Regards
     
  23. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    Thanathos likes this.
  24. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Well, I was busy over the weekend working on fine tuning the group and favorites handling and I'm happy with the result, so it's time to make it available!

    New version has been submitted: 1.14d08f

    New features include those mentioned in the previous post and then some. Quick rundown:
    Groups Favorites have been added!
    File Handling (Copy/Move/Delete)
    Persist and User Folder setting will now work across multiple versions of Unity

    Pictures in the first post have been updated to reflect the changes.

    Please feel free to comment on the changes.
     
    Last edited: Apr 9, 2014
  25. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Thanks eagleeyez. I appreciate your efforts in demonstrating the use of GYA.
    I have put a link in the main post directing people to the video.
     
  26. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    No probs, hope the video is OK, I will take a look later at the newer version. I was very busy over the last few days but now I am back.
     
  27. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14d15b

    Just a minor update.

    Fixed: Old Assets may have shown duplicate entries
    Enabled adding a package in a group to another group
     
  28. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14d26g

    'Add to Group' was showing the wrong group count
    Fixed the last issue that could cause textures to not show properly
    Group Create/Rename converts '' and '/' to prevent menu issues
    Headers can now be hidden for a minimalist view (Search Icon->Show Headers)
    Resource folder no longer required, textures are embedded in the script
    Multi group add is now enabled for pre 4.2
     
    Last edited: May 5, 2014
  29. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14e03a

    Requested feature: Added 'Import Interactively' when Right-clicking to import an asset
    Fix: Set Standard, Old, User not to show again in drop down if they had 0 assets after recent code change
     
  30. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    Thanks! I was missing that! Does this work when importing multiple assets as well?
     
  31. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Quite welcome, grin. Apparently you weren't the only one missing it. I'm not sure WHY I didn't include it to begin with, think I had simply forgotten about it. The whole seeing the forest through the trees thing. So I'm glad that eagleeyez brought it up.

    Unity made the handling of Interactive Import and Multiple Import mutually exclusive. Testing now just to be sure ... No go. When sending multiple packages to the processor, AssetDatabase.ImportPackage, and it's set for interactive, it will only process the last package sent.

    So it's not possible at this time to perform an Interactive install when importing multiple packages.
     
  32. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    You don't get a callback when import is complete so you can send the next one?
     
  33. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Lost my last post due to timing out while I was checking a few things, so here's a recap.

    The current method of handling a multiple package import is to pass them in bulk to ImportPackage and let it deal with all the hard labor.

    AssetDatabase.ImportPackage result is void, so no useful data there.
    AssetPostprocessor can be monitored and it will return results in the following ways:
    1) Send a single file to ImportPackage and it will return a result when complete
    2) Send multiple files and it will return a result ONLY after it has completed all the imports, nothing is reported in-between the individual imports during the batch.

    At least that is what I have noticed during testing.

    I do have something in mind and if it pans out, I will let you know so that you can be part of the testing if so desired.
     
    Last edited: May 7, 2014
  34. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Xeir, my friend, I wasn't following the whole conversation but it looks like you'd like to run multiple AssetDatabase.ImportPackage() interactively. Am I right? Same as this question here: http://answers.unity3d.com/questions/135233/running-assetdatabaseimportpackage-on-multiple-pac.html

    If yes, there might be a solution. I haven't tried that yet, I'll let you do that ;) hehe... The problem is that you can't run that function in a loop because every call cancels the previous one because the function doesn't create a new window but instead it does EditorWindow.GetWindow<PackageImport>(...) which will create a new window or return an existing one. This is the key method in PackageImport class as it looks like after decompile:
    Code (csharp):
    1.  
    2. public static void ShowImportPackage(AssetsItem[] items, string packageIconPath)
    3. {
    4.     PackageImport window = EditorWindow.GetWindow<PackageImport>(true, "Importing package");
    5.     window.m_assets = items;
    6.     window.m_PackageIconPath = packageIconPath;
    7.     if (packageIconPath != string.Empty)
    8.     {
    9.         window.m_PackageContainsPreviews = true;
    10.     }
    11.     else
    12.     {
    13.         for (int i = 0; i < items.Length; i++)
    14.         {
    15.             AssetsItem assetsItem = items[i];
    16.             if (assetsItem.previewPath != string.Empty)
    17.             {
    18.                 window.m_PackageContainsPreviews = true;
    19.                 break;
    20.             }
    21.         }
    22.     }
    23.     window.Repaint();
    24. }
    25.  
    So now all you have to do is to trick somehow Unity's GetWindow method to not reuse the previously created window. I didn't check how that method is implemented exactly, but I guess it will either return the first or the last created window of that type. You will be lucky if it returns the last one because then you can create a new window inside the loop just before calling AssetDatabase.ImportPackage() :cool:! If that's not the case and GetWindow always returns the first one, you'd have to "clone" the window between each call to AssetDatabase.ImportPackage() using Unity's built-in serialization (or is there any other way to clone a window?).

    If none of these works you'd have to fully re-implement the method listed above and also AssetDatabase.ImportPackage() which calls this one, using lots of Reflection. :-\
     
  35. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Hey Flipbookee-

    Good to hear from you! Yeah, looks like having multiple interactive import is something that may be of use. So I’m looking into it now.

    That thread is one I ran across when I first started looking into writing GYA and trying to get multiple import working for Unity 3.5. I ran across options ranging from using update to populate the import routine to using a co-routine, etc. and I noticed problems in testing with every one of the potential solutions that I found. Even the numerous variations I tried, so I ended up putting it on hold.

    Now I haven’t delved as deep into Unity’s innards to see what makes it tick in regards to the import functionality or even considered using the GetWindow method, so there may certainly be some potential there.

    I’m working through a possibility right now but will keep this in mind.

    Hopefully I can avoid having to go the reflection route or re-invent the proverbial wheel.

    I greatly appreciate the input!
     
    Last edited: May 8, 2014
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,360
    Nice idea

    Is there an option to keep multiple versions of the same plugin, in case you would need to revert back to one of them ?

    That would be extremely usefull
     
  37. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Most certainly, that capability is already part of GYA.

    If you haven't already, choose a User folder (Menu->User Assets), this can be a folder stored anywhere, another HD or on a network share for example. Then when you want to backup a particular asset (unitypackage), right-click on it and choose (File Options->Copy to Folder). The asset copied will be renamed to include the versioning info automatically.

    I use this myself each time before I download my own app from the Asset Store. That way I maintain a backup of all the versions I've submitted in case there's ever a reason to refer to them.
     
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,360
    Great, that is a very important feature, i have had so many times i needed an older version of a pack and forgot where i had it stored, if i ever had it stored

    Managing this will be very helpfull :)
     
  39. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    This is what I meant. I select multiple packages, and GYA sends the first one, gets a result back, and then sends the second one; repeat until all packages have been imported. Isn't that possible?

    I'd happily beta-test for you, thanks!
     
  40. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    nasos_333:
    Glad you find it useful, always good to hear!

    OnePxl:
    Yup, already working on it, something along the lines of the proposed method below.

    Current method:
    Send all packages as a batch and let Unity handle the imports (interactive is not possible) .. simple, easy, done

    Proposed method:
    Enable AssetPostprocessor checking
    --Loop begins
    Send single package to ImportPackage (in this case, Interactive mode could be enabled for each package during the batch import)
    ImportPackage processes the package
    Wait for result from AssetPostprocessor (not sure what result is passed upon an error)
    GYA is recompiled after import
    Remove processed package from list to process
    Repeat for the next package
    --Loop has finished processing
    Disable AssetPostprocessor checking, so it doesn't continue to process calls not related to importing via GYA (i.e.- modifying a script and saving it is considered an import by AssetPostprocessor)

    The only problem aside from not being able to think straight, long week .. Is .. GYA get's recompiled between each import, not sure if there is a way to prevent this from happening until all of the individual imports are done. With that in mind, need to make sure the list is persistent. Haven't had to deal with serialization as yet, so will have to see what I need to do.

    Getting close, so should have something to test soon.
     
  41. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hmm, there might be a couple of problems with the "loop" approach. First is that user can cancel the interactive importing by closing the Import Package window in the middle of the loop. Your loop will not get any notification and end up waiting forever. Second, the package might be already imported and no asset will get updated, so the AssetPostProcessor notification will not fire up, resulting with endless loop again. There's a way to quit the loop though if you get a reference to the importer window and then check on update is it still open or not...

    Your script will get reloaded only if the package add or update some scripts or dll's and recompile succeeds, so you'll have to handle both cases besides the serialization.

    Altogether I still think just showing up all interactive import windows at once (if that's possible) will make everything easier...
     
  42. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    I do believe you're right. For some reason, I was thinking that I would be handling an empty result from the post-process routine. I mentioned it had been, shall we say, an interesting week. Ok, at least that's out of the running and I can direct focus where it needs to go, once I find out where that is. Thanks for pointing that out.

    I don't have any serialization in my script currently, but the EditorPrefs are saved and restored around the import/recompile automatically, so I can handle the list that way for a quick run. I'll worry about the small stuff after the hard part is working.

    Now if I could just override the native routine and flip a bit to allow interactive in mass I think we'd all be happy. But, I don't think it'll be that simple sadly.

    Well, looks like it's time to expand the skill-set some more!
     
  43. JoeW97

    JoeW97

    Joined:
    Nov 3, 2013
    Posts:
    56
    Just bought GYA, great tool, the store could do with more asset management tools like this :)

    Is it possible to search through the Asset Store AND user folder simultaneously? It's a bit slow having to repeat each search twice.
     
    Last edited: May 15, 2014
  44. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406

    Type in what you want to search and then click on the search icon (looks like a magnifying glass) then select asset store and it shows you or then select user folder the search criteria stays the same until you click the cross in the search bar which will clear the field.
     
  45. JoeW97

    JoeW97

    Joined:
    Nov 3, 2013
    Posts:
    56
    Thanks, but it would be good if this could be achieved in a single search so that all results appear in one list.
     
  46. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    I'm sure the dev will help you in the next update, but for the time being. Just make a new group with everything in it. I see what you mean and I think having a possibilities to tick and have all boxes selected at once would be good as clicking each and every one seperatly and moving to group would be tedious.
    So I am for an update here too. Then being able to select asset store and different groups at the same time and also having a (select all) check box would be great.
     
  47. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Steve555-

    Thank you! Always good to hear.

    Just want to clarify that you do not have to click on the search icon when performing a search. The search icon is purely for toggling the headers or selecting search/sort options.

    Easiest way currently is to type your search, then use the drop-down below the search field to select which collection to show OR simply click the arrows to go back and forth between the collections.

    The clear button as pointed out is the circle with an x in it on the right hand side of the search field. It only shows up when something is in the field. The search field mimics the way the standard Unity search works in other tabs such as Scene, Project or Hierarchy.

    That being said, a combined list, 'All Packages', is planned for a future release as I had already been giving some thought to this for the same reasons. The simpler, the better.

    eagleeyez-

    I agree with having a select all visible box and that will also be added soon.

    Also, Multiple-Interactive Imports is being worked on along with the possibility of bringing multi-import to Unity 3.5. But that may take a little time.

    Out of curiosity, I wonder how many people still use 3.5?

    On top of all of that, I am considering a pretty hefty re-write to further optimize the way GYA handles everything. Although I do not have a date in mind for when I will tackle this.
     
    Last edited: May 15, 2014
  48. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    Quote from Xeir: Out of curiosity, I wonder how many people still use 3.5?

    What is 3.5? Do you have to specially order that version from Unity? ☺
    I'm dying to get 5

    Number 5 is alive.......How many still know where that came from? Without having to google first.
     
  49. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    eagleeyez-

    Hehe, ya, some things would be less hectic to work with, BUT don't want to leave anyone out if there is still need. And 3.5 certainly needed it as much as 4.x.

    Short Circuit, if I recall.

    Btw, I have added both above requested features.

    I will be sending you an email shortly to try it out.

    Steve555-

    Send me an email with your invoice number and I will forward a copy for you to try as well if you would like.

    $Screen Shot 2014-05-15 at 4.39.12 PM.png $Screen Shot 2014-05-15 at 4.39.36 PM.png

    Other than that, once I'm sure I haven't missed anything I will post the update to the Asset Store.
     
    Last edited: May 15, 2014
  50. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    New version has been submitted: 1.14e15c

    Request: Added 'All Assets' view, which is now the default view
    Request: Added 'Select All' in the multi-select drop-down

    As you may notice from the above picture, I changed 'Select ALL Visible' to 'Select All'