Search Unity

Asset Store / Package Manager

Discussion in 'Package Manager' started by Foriero, Sep 19, 2018.

  1. Foriero

    Foriero

    Joined:
    Jan 24, 2012
    Posts:
    584
    Hello,

    can please be bought or downloaded asset store packages be included in Package Manager "In Project" so that we see what version we have in each unity project installed and if we need to update it? Would be really really handy. PLEASE.

    Right now it is just by guessing and remembering what asset store version we have installed. And package manager could solve this issue.

    Thank you, Marek.
     
    christh, Johannski, Meatloaf4 and 3 others like this.
  2. DanielTG

    DanielTG

    Joined:
    Feb 15, 2018
    Posts:
    111
    Lars-Steenhoff and Elecman like this.
  3. CrystalConflux

    CrystalConflux

    Joined:
    May 25, 2017
    Posts:
    107
    Looking forward to this.
     
    transat likes this.
  4. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Yea me too, like for the longest time since even before the asset store existed. It's going to be great that the Assets folder is entirely the developers bucket to play in, and plugin developers can also have an easier time managing their plugin installations/updates in their own sandbox knowing they can replace entire folders without risk of wiping some files the dev might have introduced. So many plugins are like a weed to try and uninstall with their files spread out all over the Assets folder.
     
    transat likes this.
  5. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    I also strongly believe the Package Manager should be the only way to import Unity Store assets in a project. The store should be just that - somewhere to buy/sell assets. The current method of using "in-editor" store simply does not work for anyone who has purchase a high number of assets. It is a major headache as can be seen in this thread... https://forum.unity.com/threads/asset-store-site-upgrade.669670 and Unity is probably losing a fair amount of income because of this.

    If I could access a Unity-Asset-Store repository in the Package Manager, my project would be so much easier to maintain! I'm sure it wouldn't be too difficult to have the repository only give me access to assets I've purchased.

    To make this work best, the Package Manager would ideally let me see inside packages to cherry pick which specific assets I want to import. But that can come a bit later. The priority is too remove the in-editor asset store from the whole importing assets equation.
     
    Thaina, Mikael-H and mobuni5 like this.
  6. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    One thing I wish it should be possible

    I wish that. We should have a way to reference another person's asset in our packages. And sell our upgraded version with the sum cost

    Suppose there are an artist that sell raw model and texture of character for 10$. And another programmer thinking that there should be PBR material for color tinting and some scripted animation for this character. The programmer did so and want to sell the work for 1$

    And so people that have been bought the original character asset will see the new asset as 1$ but the people who don't will see that this new package is 11$ include the character asset. And when they press buy they would buy both
     
  7. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    @Thaina Sounds like a good idea. But... For it to work you'd probably need for both developers to choose a distribution license that sets a few rules down. Can you modify the other developer's asset in your combined asset? Dangerous territory! Or is it just a dependency? If it's just a dependency then what if one developer updates their asset for it to work with the latest Unity and not the other? A manifest file would stop things suddenly breaking but you wouldn't be able to use the combined asset in the latest Unity. And what if someone essentially sells the asset of one developer by adding a $1 texture to it and then does a terrible job with customer service or messes with that developer's asset in ways that affects their reputation or adds needlessly to their workload? This all seems very complicated and dangerous, the more I think about it! Maybe the current 'integrations' approach is better at leaving the onus on each developer.
     
  8. Akshara

    Akshara

    Joined:
    Apr 9, 2014
    Posts:
    100
    Honestly and sincerely, whatever state this is in right now is likely better than the current built-in Asset Store browser experience. So please, go with what you have as soon as you can.
     
  9. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    It should be just a dependencies and should use semver to control compatibility, like a normal dll packages. Unity should always keep all versions for anyone need to fallback

    It could be some chaos at first but soon artists would learn a semver standard somehow. And we could define package semver safely

    Other things you concern is how to design asset store UI to clarify that you are currently buying multiple package and each aspect need to contact difference owner
    Actually it should just force you to buy multiple packages at the same time. In the cart it would show all packages dependency hierarchy. And if you remove any root dependency it will also remove all of its dependent (should be a checkbox of enable/disable and when you check one out it would grayed out all dependency)

    And if we do this system, it would pull those packages into your project equally. And each one should not do anything to other. If any tail package try to make any messy things you can just remove that package but still keep the root
     
    Last edited: May 27, 2019
  10. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    Actually, I realize that it opposite

    I think we could expect that the next version of assetstore and packagemanager would be exactly the same thing. When we try to import asset it will just add the asset key to package manifest and download it into packages folder

    What I try to say is I wish that assetstore would read package manifest of the asset. And manage the hierarchy of dependency in the store, check the availability of dependency and reflect that on the store UI, showing the sum cost and how many package user need to buy along with each package and automatically add all of those into the cart
     
  11. Foriero

    Foriero

    Joined:
    Jan 24, 2012
    Posts:
    584
    Hi, any progress on what Asset Store package versions we have imported into our project? We are kind of lost in the new 2020. First we don't see packages that were installed into that particular project. Second we don't see if there is and update compared to what has been imported. You would most likely need to create a meta file record about what packages were imported and let us filter them in Package Manager and let us see what version we have imported. Thanks.
     
    transat likes this.
  12. Foriero

    Foriero

    Joined:
    Jan 24, 2012
    Posts:
    584
    In other words we need "In Project" for Asset Store packages. And if the packages that need to be updated do in batch. ( Download, Update )
     
    transat likes this.
  13. PatrickLipo

    PatrickLipo

    Joined:
    Mar 14, 2015
    Posts:
    36
    Agree. I have no idea what's in my project by looking at the Asset Store, so I was going to resort to labeling the assets with my project name so I could filter. BUT I can't even assign a label without using the store. It really feels like a half-feature, and with 2020 now we're being forced to use it.
     
    transat likes this.
  14. Shaunyowns

    Shaunyowns

    Joined:
    Nov 4, 2019
    Posts:
    328
    The Asset Store format does not allow tracking for which packages have been imported in a project. This is a key difference between the current Asset Store format and the new Package Manager format.

    Unfortunately as it stands, there isn't really any API that can be invoked by custom code to query the remove information about Asset Store packages and figure out by themselves whether there are updates available. As it stands the team are not aware of any plans to make this a reality, either.
     
  15. chrislarabell

    chrislarabell

    Joined:
    Sep 14, 2017
    Posts:
    9
    Does the team plan on fixing the issue related to packages not updating or showing that an update is available, even when the package DOES have an update available?

    And when I say packages, I mean assets from the asset store.
     
    transat likes this.
  16. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    No one at Unity has considered that users would like to know if the packages they’ve bought from you and imported into their project need to be updated? And you have no plans to deliver this?? Holy moly that’s disappointing.

    I think the API is in place. If I click on import twice in a row the PM will tell me that version of my asset is already in my project and doesn’t need to be reimported. And if I delete one file from that imported package and replace another file with an older version... and then click on import... the PM knows those files are already in my project, that the package is missing a file (which it offers to replace) and that a file had been changed (which it offers to replace). So the PM already knows most of what it needs to tell us if asset store packages need updating. Any extra info the PM needs to do its job properly should be injected into the .meta files of imported assets upon import.

    Even if this solution is a stop-gap, at least it would show you take your users concerns seriously.

    Here’s a challenge for you @Shaunyowns ... Please put up a poll on this forum asking users if they’re fine with you guys having no plan to fix this problem. I’ll send you a box of chocolates if more than 2% are cool with the absence of a plan.
     
    Meatloaf4, Weendie-Games and Foriero like this.
  17. manarito

    manarito

    Joined:
    Nov 17, 2016
    Posts:
    9
    For me it's very simple.
    I buy for around $2000 assets a year and has been for many years, well, Unity won't see a dime from me until they fix this.
    If Unity doesn't care about their customers, certainly we won't care about Unity.
     
    transat likes this.
  18. Foriero

    Foriero

    Joined:
    Jan 24, 2012
    Posts:
    584
    Yes this is a MUST. :) Especially if you manage many projects then one gets lost where is imported what. :)
     
    transat likes this.
  19. Shaunyowns

    Shaunyowns

    Joined:
    Nov 4, 2019
    Posts:
    328
    I'll push the post over to the team to see what I can get back, it's the least I can do in this scenario.

    I hope this helps somewhta!
     
    Lars-Steenhoff likes this.
  20. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    I appreciate. But no, it doesn’t really help me know if I need to update assets in my project! What will help is if the team in question realises how much of an embarrassment this is to Unity and how much of a pain it is to users. I personally think the least that can be done is for Unity to come up with a plan to solve this in the very short term. This is an MVP feature that should have been implemented many years ago.
     
    Meatloaf4, firstuser and Akshara like this.
  21. Foriero

    Foriero

    Joined:
    Jan 24, 2012
    Posts:
    584
    @transat I would not push unity too much or they kick you out of the forum :) Moreover, now, when Unity is going Public the things will take even more time to implement I guess. :)
     
  22. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    Last edited: Sep 18, 2020
  23. devluz

    devluz

    Joined:
    Aug 20, 2014
    Posts:
    66
    Is there any progress with the unity of asset store & package manager?
    Is there a way for an asset to define dependencies for a package?
    Any way for a package to depend on an asset?
    Any way for a asset to be added to the package list and appear under packages?

    I am following this topic since the package manager was added but since then I didn't really see any major news to this.
     
    morepixels, cecarlsen and firstuser like this.
  24. cecarlsen

    cecarlsen

    Joined:
    Jun 30, 2006
    Posts:
    862
    I am wondering about the exact same thing.
     
  25. Dakor

    Dakor

    Joined:
    Sep 2, 2013
    Posts:
    7
    Yeah, this would be incredible helpful with complex projects.
     
    firstuser likes this.
  26. firstuser

    firstuser

    Joined:
    May 5, 2016
    Posts:
    147
    Any workarounds people are using?
     
  27. shanecelis

    shanecelis

    Joined:
    Mar 26, 2014
    Posts:
    22
    I had been refactoring my asset to be a unity package (made a package template for dotnet too) because I figured packages were already supported in the asset store. Haha, oops. I wanted to use TextMeshPro and using it by declaring dependencies seemed the right way. @firstuser I wonder if as a workaround, one could put their package file tarball in their asset with a README that says how to import it.
     
    cecarlsen likes this.
  28. firstuser

    firstuser

    Joined:
    May 5, 2016
    Posts:
    147
    Idk if this is an ok workaround for your case but i think via
    UnityEditor.PackageManager
    you would be able to install it. I know that's not ideal or a formal dependency but ¯\_(ツ)_/¯

    Code (CSharp):
    1.  
    2.  
    3. // Example use:
    4. // AddPackage("com.unity.timeline@1.5.2");
    5.  
    6. private void AddPackage(string package)
    7. {
    8.     AddPackage(new List<string> {package});
    9. }
    10.  
    11. private void AddPackage(List<string> package)
    12. {
    13.     AddPackages(package);
    14. }
    15.  
    16. private void AddPackages(List<string> packageList)
    17.         {
    18.             foreach (string package in packageList)
    19.             {
    20.                 if (!string.IsNullOrEmpty(package))
    21.                 {
    22.                     UnityEditor.PackageManager.Requests.AddRequest request =
    23.                         UnityEditor.PackageManager.Client.Add(package);
    24.  
    25.                     while (!request.IsCompleted)
    26.                     {
    27.                         System.Threading.Tasks.Task.Delay(100);
    28.                     }
    29.  
    30.                     if (request.Status != UnityEditor.PackageManager.StatusCode.Success)
    31.                     {
    32.                         Debug.LogError("Cannot import " + package + ": " + request.Error.message);
    33.                     }
    34.                 }
    35.             }
    36.         }
     
    MaykeBr and shanecelis like this.
  29. zackblack

    zackblack

    Joined:
    May 17, 2015
    Posts:
    76
    Just checking in on this, October 2021. So just to be clear, there isn't a way to attach the Package Manager to a store asset you've purchased so that it will indicated if an update is available?
     
  30. It can indicate if your cached asset store asset has a new version. But you need to go to the "my assets" section of the package manager to see this and look up the asset by search or scroll.
    screenshot.png
     
    zackblack likes this.
  31. zackblack

    zackblack

    Joined:
    May 17, 2015
    Posts:
    76
    Right, but not whether the asset installed in your project needs to be updated, yes?
     
    transat likes this.
  32. There is no such thing as "asset installed in your project", (as of today, this may change in the future when they will provide proper packages from the asset store as well) as soon as the .unitypackage unzipped it's just a bunch of files. But you cannot have newer than what you have in the cache, so it's fairly straightforward, if this shows that there is a newer version, then your project can be updated as well.
     
    cxode and zackblack like this.
  33. christh

    christh

    Joined:
    Jun 9, 2019
    Posts:
    10