Search Unity

Feedback about ScriptableBuildPipeline

Discussion in 'Addressables' started by liortal, Jul 14, 2018.

  1. liortal

    liortal

    Joined:
    Oct 17, 2012
    Posts:
    3,562
    Our company (and also I personally) are heavily "invested" in asset bundles. as such i am super interested in (and excited about) the latest changes - Addressable assets and SBP.

    Going over the SBP document to familiarize myself with it, here are my comments about the document and the feature.

    (document - https://docs.google.com/document/d/1uuiEDV7WqpHEylzE4GQwOztCttrwPu6ak0kfELz6ilc/edit#)

    1. Manually adding the package

    The document mentions that i have to manually add the package to my project's manifest.json file, however in the 2018.2 release notes it is said that SBP was released. Not sure what that means and why do i still need to manually add the package.

    The package is also not available in the package manager UI.

    2. Phrasing
    (not that English is my native language)
    I believe what you wanted to say was that "not all features previously supported are available now".

    Also:
    From this explanation, it is not clear where would i use the BuildPipeline class vs. the LegacyBuildPipeline class. Also, what does it mean "to build my asset bundles using the SBP package". If this is the legacy option, why does it get built using SBP ?

    So, right now with SBP i have 3 APIs:
    • BuildPipeline
    • LegacyBuildPipeline
    • ContentPipeline
    The last one is the actual re-write of the build code? what are the other 2 then?

    3. Incremental Building
    Is SBP the LegacyBuildPipeline? or the ContentBuildPipeline? Also, what is the BuildCache ? no word about it anywhere.

    4. Typos in DeterministicAssetBundle - Supported.
    5. Breaking change (load using full path instead of asset name)
    First of all, why was this change mandatory? basically this says that every single project in the world gets broken, right ?

    We currently our asset bundles, then use the prefab name from it when loading. this will break now.
    Also, isn't the exact path to the asset an implementation detail? why should i remember the full path when loading that asset?
    Another thing, it is mentioned that you could override this behaviour:
    addressableNames is a string[]. What does it mean to pass in multiple names? not sure i understand how this works.

    So, now that i've covered the document, i'm ready to start using SBP!!!

    ... i don't really feel i had any example or documentation telling me how to use the new system. The package itself also doesn't come with any documentation. There are 2 methods for building assetbundles using ContentPipeline, but all of these take in interface types and there's no documentation as to how to obtain those interface implementations or how to use it. An educated guess led me to try the class names similar to the interface names which was successful, but still, please add some docs on how to use this.

    I will keep playing with it and report other comments tomorrow :) sorry if this sounds like rants at some points (well maybe it is), i am going to heavily use this so i want to expression my opinions ;)