Це відео не доступне.
Перепрошуємо.

How Unity3D Addressables make assetbundles easy and your project faster

Поділитися
Вставка
  • Опубліковано 16 сер 2024

КОМЕНТАРІ • 212

  • @chrisshouse9927
    @chrisshouse9927 4 роки тому +20

    Thank you for this! Addressable’s + Data Binding + Observables + XML parser on the server , has my boss thinking I am genius when really all I truly am great at is watching your videos! Any tid bits on server client relations to dynamically working with timers would be the cherry on top.

  • @TheNoobGameDeveloper
    @TheNoobGameDeveloper 2 роки тому +8

    Quick Update for anyone watching this after 10/2021, the texture memory on profiler remains the same even if everything works correctly, Go to Addressable Groups window -> Tools -> Window -> event viewer to check if the memory is released completely.

  • @godmode3611
    @godmode3611 6 місяців тому +1

    I love the way you put brackets for if and for (except I use brackets for one line if as well). And the underscore for private fields. After 10+ years working with Unity that is the way I prefer as well.

  • @justinwhite2725
    @justinwhite2725 4 роки тому +44

    This tutorial is at exactly the level where I'm at. I know you probably lost a few people glossing over the delegate methods.
    I was hoping you'd cover server assetbundles from a cloud or cdn. It seems that's where the system truly shines. Pretty much everything you have covered here I already had figured out (except for releasing the handle).

    • @Unity3dCollege
      @Unity3dCollege  4 роки тому +22

      I'll definitely do one on downloading and updating soon. I wanted to cover the basics then jump into that but it was getting long already :)

    • @mandisaw
      @mandisaw 4 роки тому +2

      +1 over here. I read the docs, and have seen/attended a couple of Addressables talks, but I'd like to see how it would work in a realistic (though small) scenario - patching an already-released game, or making different assets available for different builds (ex: by platform, by country or region).

    • @adrianalcomendras6754
      @adrianalcomendras6754 4 роки тому +6

      @@Unity3dCollege is this video available right now?

  • @sabriboughanmi2435
    @sabriboughanmi2435 4 роки тому +47

    Good Tutorial! (I Like the Way you Explain Things)
    Can you please make a more advanced one about Addressables ?
    try to talk about :
    * how to use Addressables with Async Await
    * how to organize Groups (Static / Remote) + a Quick Preview Groups Settings
    * how to host DLCs and update Contents
    * try to give a quick preview of all profile settings Features.
    this will be awesome and unique on UA-cam!

  • @MacMiggity
    @MacMiggity 3 роки тому +21

    You are the new brackeys for me btw.

  • @Xerisis
    @Xerisis 4 роки тому +1

    I did NOT know you could search the asset store from the search bar! Time saver for sure!

  • @alexkern5880
    @alexkern5880 4 роки тому +91

    The ratio of how important addressables is, to how much documentation is available, is abysmal. I've been trying to figure out basic implementation of instantiating and referencing addressable objects for about a week. I also can't find good examples on how to use addressable groups. I have a one-scene game that i'm trying to manage memory with, and i'd like to be able to have certain groups (biome specific objects, pretty much) loaded and unloaded into memory based on where my character is, but I can't even figure out how to control an object Instantiated using addressables.

    • @Whenslunchgames
      @Whenslunchgames 4 роки тому +7

      We are in a very similar boat! A big open region that I have things turned on and off based on player location, but it isn't being removed and added to memory... it's all just sitting in memory. I'm hoping to find a solution to this soon, it's butchering my beta user base on mobile lol

    • @brainmold
      @brainmold 3 роки тому +8

      @@Whenslunchgames Edit: I figured out what I was doing wrong. In the end I realised I had the Addressables "Play Mode Script" set to the default. Which is "Use asset database (Fastest)" this doesn't do anything with memory and acts like normal Unity. I set it to "Use Existing build" and then biuld it (with the pulldown next to it) and it works as advertised. :) You have to rebiuld when you add new Addressables but its not to bad.
      I don't think it was mentioned in the vid but I could be wrong.
      Old reply: Did you ever find out why it stays in memory. At the moment even the demo project Jason provided doesn't remove textures from memory on my end. Either I am doing something wrong or something changed on Unitys end...

    • @Whenslunchgames
      @Whenslunchgames 3 роки тому +1

      @@brainmold I never figured it out myself. It hasn't fixed performance bottlenecks on my end but I could really be doing something wrong too lol

    • @MalrickEQ2
      @MalrickEQ2 3 роки тому +4

      Unreal waiting for you :)

    • @Mr.Epsilion
      @Mr.Epsilion 3 роки тому +1

      @@MalrickEQ2 Welcome to Dark side :)

  • @larryp2206
    @larryp2206 2 роки тому +2

    Incredibly useful tutorial for me. Yes there was some complexity, but it solves an equally complex problem which is keeping tracking of assets that are loaded into memory and how many are instantiated. Well done!

  • @spiral9316
    @spiral9316 4 роки тому +13

    I always recommend your tutorials to anyone who's really into making games or learning unity/c# you are the best anyways
    I also recommend bob Tabor and Eric lippert courses

    • @supertenchoo4271
      @supertenchoo4271 4 роки тому

      bob and sine eric lippert course can you give more details on these people eg website of them

    • @spiral9316
      @spiral9316 4 роки тому

      @@supertenchoo4271 hi,
      Had a typo on Eric's name.
      They are like c#101.
      bob Tabor is great for the first introduction to language , Eric just a steph above.
      You can find the basic videos on Microsoft academy site.. just Google "c# intro bob tabor Microsoft academy"
      Eric lippert.. I think I used O'Riley's site and went on to c# course page .. I think first month it's free.
      And some Linda course on c# and object oriented programming plus some books.. clean code and architecture by Uncle Bob martin
      That's about the basics of the language bob Tabor and Eric lippert and very good to start.

    • @gcodergr
      @gcodergr 4 роки тому +3

      John Skeet has an amazing contribution in stack overflow. I highly recommend his book “C# in Depth”.

    • @supertenchoo4271
      @supertenchoo4271 4 роки тому

      @@spiral9316 thanks man

    • @spiral9316
      @spiral9316 4 роки тому +1

      @@supertenchoo4271 yw. Also on books I recommend
      C# the ultimate reference, I discovered the more ambitions the book the more worth it because other books just handwaved the precious and really normative explanations(why to really do something, how you have to think about it and why) not a perfect book but the best on learning an intro to c# and it's history format makes it a really great explainer.
      On the ultimate reference the explanations are better(relative excellent), much more better than c# in depth(it felt like a tray of light) and I considered the c# in depth a very good book compared to others but ultimately if you want a book on c# the ultimate reference it's the only really Worth book on my experience, other are too concrete and evade lots of explanation really feels like the just want to give you exercises.
      The ultimate reference is more minded towards people who build things as opposed just college students like most other books.
      C# in depth is an ok book also recommend, just to have a reference because there's the ultimate reference.
      There's also a book on planning and predicting like estimates on how much time it's going to take to do something, that book was very useful to me at it got me the idea of what it takes to get something out there, things to consider etc.. it's an old book but very famous and useful if you are new to programming.

  • @megasupernewbie
    @megasupernewbie 4 роки тому +2

    thanks for showing this. a better way to present this type of concepts might be to first introduce us by way of showing relevant API as a simple visual aid, then show a super simple example (maybe something like just a single mono behavior script that will load and unload the asset) and only then, for everyone sticking around you can proceed to walk through a more complex example.

  • @phobos2077_
    @phobos2077_ 4 роки тому +1

    For the games I'm working on it makes more sense to load whole AssetBundles together during the loading screen and then just use them an a sync manner. Basically I want all the benefits of AssetBundles and async loading (small apk size, fast initial load time, smooth progress bars, etc.) but I don't feel like I need to have an AssetReference for every single asset that I use, like prefabs and whatnot. I think this way of using Addressables might be relevant for full open-world games when you have all kinds of assets sprinkled all over the place and you're just loading/unloading them as your camera moves. But even for such game I feel like the most efficient approach overall is to use split world into Scene Bundles and assets into normal bundles and use bundle dependencies to load/unload correct bundles in memory as you traverse the world. For example you approach a village, the village scene bundle gets requested which in chain requests a bunch of other bundles for village house textures and whatnot. So when your initial async operation for loading the village scene has reported completion - you have everything you need for that scene (and scene itself) loaded, so there's no need to use AssetReference at all, you should be able to reference assets within the Village scene directly.
    What am I missing?

    • @leo31420
      @leo31420 4 роки тому

      Apart from more control over memory management, the point of addressable assets is to have an universal way to reference an asset. That asset may be in memory, in your hard drive, or in a server (unity provides a few solvers and you can implement your own).
      The async api is useful because you can locally instantiate an asset by it's name, even if you don't have such asset downloaded at the time. In your example imagine you go to the village for the first time, the client will lazily download and instantiates the houses and textures, and everything works fine because you Implemented everything async, contemplating the case the asset may not be there at the moment.
      Also there's a few problems with duplicated assets and dependencies in raw assetbundles, which may be reduced if you reference everything as strings.

    • @phobos2077_
      @phobos2077_ 4 роки тому

      @@leo31420 I'm not convinced. In the village example you'd want to download all bundles for the game world up front, so that you can guarantee the village bundle loads to memory in an expected time frame.
      Regarding the issues like duplication of assets, AFAIK addressables only help you identify those issues, but they don't change how asset bundles work.

  • @lemuelapperson853
    @lemuelapperson853 2 роки тому

    Thanks! Still banging on Addressables to better understand them. Your example was very helpful. I hope to re-tool my only game on Apple's App Store. The load time is way too slow for me.

  • @F3ND1MUS
    @F3ND1MUS 4 роки тому

    There is a private video on the Advanced Unity3d Tutorial Topics playlist Jason or whoever manages playlists😀
    Thank you for the help. I learn alot from these

  • @KEM4OFFICIAL
    @KEM4OFFICIAL 4 роки тому +27

    What about a topic on update the content? Addressable's are more to it. I would love to hear your opinion on having local/remote servers, using s3 may be and how to publish content updates via remote. What about patches, since addressables are downloadable via remote and if by chance some of the levels broke up, you can re-send them the scene via addressables? What about prefabs that can be fixed and a patch can be deployed basically by adding updated content release and even fixing the game bugs? Store/Skins that can be published without a new game release (content update). There are huge possibilities here.
    This can even be used for artists to send in the fan art for the game, where skin textures are modded, accepted in some git repository maybe and then packed to the server on a daily basis.

    • @shyamarama
      @shyamarama 4 роки тому +1

      KEM4 actually, this would be great. Any suggested links on the topic?

    • @mehmetonurtunc3747
      @mehmetonurtunc3747 3 роки тому +1

      Heyy! Are there any tutorials or posts about this topic

  • @marcolozano1348
    @marcolozano1348 4 роки тому

    Jason, Awesome tutorial. First time commenting on any of your vids. One of the best subscriptions i've ever subscribed.
    Thank you so much for teaching this.

  • @silkms
    @silkms 3 роки тому

    very helpful video - thank you!
    Would be great if you also gave a demo of using a profile with a remote url to bring clarity to a not so obvious step!

  • @penneyworth
    @penneyworth 3 роки тому

    This video is the most useful info on addressable I have found. Thanks so much man!

  • @saeedbarari2207
    @saeedbarari2207 Місяць тому

    Late to the party but man just re-created a garbage collection system, claiming this is now easier than assetbundles 💀😅
    Nice video seriously! Old but gold

  • @ZoidbergForPresident
    @ZoidbergForPresident 4 роки тому +42

    I had trouble understanding clearly everything. I think it'd have been good for you to display some diagrams before getting into the code, I think it'd have made things easier to grasp.

    • @HollyRivay
      @HollyRivay 3 роки тому +2

      I'm from Russia, and this is at least 2 times more difficult with my knowledge of English and even using subtitles with translation.

  • @FullStackIndie
    @FullStackIndie 3 роки тому

    Thanks so much man! Its definitely complicated but i was able to follow along and understand for the most part

  • @daniyalniazi1771
    @daniyalniazi1771 Рік тому

    I just hit like before his video even starts

  • @112Nelo
    @112Nelo 3 роки тому +1

    Reading the documentation it seems like you don't need to both LoadAsync and InstantiateAsync. If you load async you get the prefab back and can instantiate it sync. InstantiateAsync just does both for you. The official docs:
    The main two ways are using the Addressables.InstanitateAsync API directly, or using the Addressables.LoadAssetAsync API and then manually instantiating the GameObject yourself.
    If you are instantiating a GameObject through the InstanitateAsync API, you have the convenience of allowing Addressables to do all the work of resolving the IResourceLocation if the key version of the API is used. Regardless which version of the API is used, Addressables downloads all the required dependencies, and instantiates the object for you. As a note, the instantation itself is synchronous. The asynchronous aspect of this API comes from all the loading-related activity Addressables does prior to instantiation. If the GameObject has been preloaded using LoadAssetAsync or LoadAssetsAsync the operation and instantiation becomes synchrounous. For example:
    docs.unity3d.com/Packages/com.unity.addressables@1.14/manual/InstantiateAsync.html

    • @deepSpaceLabs
      @deepSpaceLabs 2 роки тому +1

      You can use both together as well, the difference is that if you use both the ref count will be 2. In my case, I don’t want to hold onto the LoadAsset handle, but instead release the object via the instantiated object. If you use the regular Instantiate method you cannot do that, you must use InstantiateAsync. So my pattern is use LoadAssetAsync, then InstantiateAsync. After instantiated I release the LoadAssetAsync handle which brings the ref count to 1. Assuming you do not instantiate more of the object, you can then use ReleaseInstance on the Result of the InstantiateAsync to bring the ref count to 0. Note, when you use InstantiateAsync after LoadAssetAsync completes, the InstantiateAsync is immediate.

  • @kuinks
    @kuinks 4 роки тому +17

    Suggestion: instead of showing a script that's been previously written with a walk-through you should instead write it from scratch. It's easier to digest and understand.

  • @mqa7001
    @mqa7001 4 роки тому +1

    this is a good tutorial, I was finding to load assets from remote.

  • @rubencruz2687
    @rubencruz2687 3 роки тому +1

    Thanks!! I want to see more Addressables-related content! :D

  • @alon_vita
    @alon_vita 3 роки тому +3

    We have a library of RuntimePrefabs. I was looking for a long time on how to improve this library - your video is spot on.
    If I understand correctly, the usage of Addressable goes much father than just loading prefabs in runtime. Is that correct? if so, a sequel would be awesome, for example, on how to use Addressables with third-parties like Google services etc.
    Thank you so much

  • @darkvvulf
    @darkvvulf 2 роки тому +7

    While this code is very clever, it's just a lot of extra confusion when all someone wants to know is the intro bare basics of how this system works. It would be better to just next time do the bare bones, and THEN expand it into all the clever pooling stuff.

    • @0Speedo
      @0Speedo 2 роки тому +1

      yup, I hate when someone is trying to teach you one advanced thing but they combine it with other advaced thing making it unnesessarly complicated. Although I eventually understood everything he tried to teach it took me more time than it had to

    • @PeterSedesse
      @PeterSedesse 2 роки тому +2

      Yeah, he could have maybe added a 3 minute section near the beginning using psuedo-code and explaining what objects each script is attached too and what it does.

  • @therimshak
    @therimshak 4 роки тому +1

    Very good indepth ... like always Jason

  • @cgimadesimple
    @cgimadesimple Рік тому

    Thanks for this tutorial!

  • @denisgoodman4492
    @denisgoodman4492 2 роки тому

    Very good video, but I was understand it fully :) only after one year studying UNITY with C#

  • @HedgehogNSK
    @HedgehogNSK 4 роки тому +6

    Hello, Jason.
    Can you please explain why do you use Addressables.InstantiateAsync after Addressables.LoadAsync? The result of the load operation is GameObject, isn't it? As I understood from the documentation I should use LoadAsync and then I can use GameObject.Instantiate to result of operation or I can use directly InstantiateAsync, am I wrong?

    • @darkmattergamesofficial
      @darkmattergamesofficial 3 роки тому

      Did you ever figure this out? Still curious about this myself. Thanks.

    • @IvovanderMarel
      @IvovanderMarel 2 роки тому

      You are correct - you can and should just Instantiate directly. The LoadASync returns a reference to a prefab which can be instantiated directly. docs.unity3d.com/Packages/com.unity.addressables@1.3/manual/MemoryManagement.html#:~:text=To%20unload%20the%20asset%2C%20use,immediately%2C%20contingent%20on%20existing%20dependencies.

  • @afewdragons
    @afewdragons 4 роки тому +1

    Well, added this to my projects to do list.

  • @dbuitgames3219
    @dbuitgames3219 3 роки тому

    That's useful! Thanks a lot for sharing this knowledge

  • @chadfranklin47
    @chadfranklin47 3 роки тому +1

    Is there any benefit to using Addressables.InstantiateAsync() vs GameObject.Instantiate() if you are already using Addressables.LoadAssetAsync()? The docs state that after calling Addressables.LoadAssetAsync(), you can use the returned GameObject and just instantiate that normally, though the Addressables system won't know about those instances.

  • @mrpinkdev
    @mrpinkdev 2 роки тому

    I try to find this video every time I need to install addressables into new project. I just found it by searching "Unity Addressables Beard"

  • @haraldgundersen7303
    @haraldgundersen7303 4 роки тому

    Nice, what might be interesting is to store gameobjects in Azure blob storage and drag down and instance on demand. (Think World scale AR, objects based on GPS)….

  • @Max-yb1mx
    @Max-yb1mx 2 роки тому

    This is great content!

  • @deepSpaceLabs
    @deepSpaceLabs 2 роки тому

    I think there is a small mistake. If you call InstantiateAsync after LoadAssetAsync completes, the instantiation should be immediate/synchronous, therefore there is no need to use the Completed call back.

  • @andreyshade84
    @andreyshade84 4 роки тому

    Thanks, for such a good explanation

  • @FlyVC
    @FlyVC 4 роки тому +3

    When I try this exact example project, the Texture memory never gets freed anymore. The Adressables profiler works correct, but the regular profiler memory reading does not make any sense. Anyone else with this problem?

    • @brainmold
      @brainmold 3 роки тому

      Yes same here, I was having this issue in my own project. Saw your comment and then checked the example project. Same problem, texture memory doesn't go down once the particle system is removed.

    • @chadfranklin47
      @chadfranklin47 3 роки тому

      Same here (only in the Editor). When I ran it in the build, it worked as expected.

  • @CirbyWeh
    @CirbyWeh 3 роки тому +1

    I don't fully understand how the unloading works. In the Documentation it says that an AssetBundles can not be partially unloaded. So if you load Asset A, B and C, which are in the same bundle. And you unload B and C, they will still be in memory until the whole package is unloaded. Yet it looks like you actually do unload partially.
    Also; how would we unload everything? Do we just unloade A, B and C, or is there a necessary command to unload a whole package?

  • @pixelb0i255
    @pixelb0i255 3 роки тому +1

    Using asset bundles and never looked back. Be smart and listen to @Jason

  • @ValentinLaulund
    @ValentinLaulund 4 роки тому +3

    I tried to use this in one of my projects and also tried out Jason's source download project, on my side the Addressable profiler works fine, but the Textures memory in the old profiler never goes down again like in the video.
    What am I doing wrong?

  • @sps014
    @sps014 4 роки тому +50

    Next tutorial on DOTS please ;

    • @compilerdefiler3995
      @compilerdefiler3995 4 роки тому +3

      no dots is still in preview

    • @sps014
      @sps014 4 роки тому

      @@compilerdefiler3995 if i recall correctly DOTS was announced in 2018 GDC.

    • @jakehix8132
      @jakehix8132 4 роки тому +1

      @@sps014 full engine rebuild. it's not gonna be included for 2019 LTS even.

  • @1000_Gibibit
    @1000_Gibibit Рік тому

    One part about the Addressables API confuses me greatly. Why does Addressables.ReleaseInstance() exist? The documentation mentions something about ref counting, but what is it counting refs for? As far as I understand you can simply use GameObject.Destroy(). In your example, you are tracking instances and then releasing the asset by hand with Addressables.Release(). If you have to do this yourself then what is the use of ReleaseInstance()?
    If anyone can shine some light on this that would be greatly appreciated.

  • @yerasisaiprasadreddy
    @yerasisaiprasadreddy 4 роки тому

    Code structure of particular spawner is good.

  • @SkitzFist1
    @SkitzFist1 4 роки тому +4

    Welcome to live eleven!

  • @sanchitgngplays
    @sanchitgngplays 3 роки тому

    please make a video on cloud content delivery in Unity

  • @marshmallow_fellow
    @marshmallow_fellow 4 роки тому +2

    Is there a dark theme for you IDE? It's pretty jarring having it slam from dark to white when you open it.

  • @piotrw3366
    @piotrw3366 4 роки тому

    Great tutorial. So if we store data in multiple scriptable objects instead of Reasorce.ReadAll we should now consider using addressables? Thanks for the tutorial!

  • @DaniMarti_
    @DaniMarti_ 4 роки тому +2

    Hi Jason, thanks for the video! I'm trying to use addressables for my enemies, instead of clicking I have a for loop to instantiate them, for some reason the loop doesn't work, it only creates two instances and then stops, it's like after the method instantiating from reference the loop stops. Any suggestion how to instantiate several enemies from a list of asset references? Thanks so much!!

  • @thecargs
    @thecargs 4 роки тому

    Very nice video, thank you a lot :)

  • @DigitalSummit
    @DigitalSummit 9 місяців тому

    I'm having an on my Quest app with addressable . My scene slows down when it is set as an addressable, and runs smoothly when loaded locally. I used Occlusion culling to get this fat scene to work smoothly at 90 FPS. Occlusion culling seems not working on Android addressable scenes could explain my problem.

  • @luiginicastro1101
    @luiginicastro1101 3 роки тому +1

    This could be a dumb question but if you're working on a project that already uses AssetBundles, would you convert them to addressables or is there a system to change over?

  • @travelsizedlions
    @travelsizedlions 4 роки тому

    This is great! I was wondering if there was some way to control your memory usage in-game.

  • @BlackJar72
    @BlackJar72 Рік тому

    Now, if I had an easy, not overly hacky way to have Unity load all the games assets with the start screen (yes, that really makes a lot of since with the game I just finish and will probably finish some more in the near future -- tired of the extra delay the first time my procedural dungeon scene load when the generation itself take a couple milliseconds).

  • @yerasisaiprasadreddy
    @yerasisaiprasadreddy 4 роки тому +3

    Please make a whole game tutorial using DOTS.

  • @DigitomProductions
    @DigitomProductions 4 роки тому

    Hey Jason thanks for this video it cleared things up for me quite a bit. Are there other uses to this system besides spawning objects into the scene for efficiently? Does this make pooling obsolete? Thanks,

  • @RenegadeVile
    @RenegadeVile Рік тому

    I'm assuming this is mostly useful for assets that need to be loaded into a scene after the scene has already started? Thinks like bullet GameObject in a pool?

  • @lorenfulghum2393
    @lorenfulghum2393 4 роки тому

    Anyone wondering about that ? operator in NotifyOnDestroyed, it's called "null conditional delegate invocation"

  • @germanslice
    @germanslice 4 роки тому

    The Problem I see with using Asset Packs Especially Unreal Engine Marketplace Asset Bundles is that they install in the whole entire pack in from the marketplace instead of allowing you to just install in the item that you want from out of the pack after you buy the pack. I.E a 500 Plants mesh Pack, which takes up 8-10 gigabytes or so of HDD space, so you have to install in the whole pack in online from the Epic Website just to get access to only maybe half a dozen plants you may want to use from out of it is a nuisance which means you have to install in the pack into a new blank project then migrate out the items from the pack what you want because there's no select item preview install option on these marketplace packs... There's only two options cancle or Install. Because not all projects use all the pack items. Plus things get more complicated also when sometimes those asset packs include also integrated blueprint code that you have to install in everything or those blueprints that they are referencing to of the pack don't work.
    I installed 1 icons pack, and its shot up the number of directories up to from 200 now to 989 directories. A ridiculous amount
    My current unreal project, a small little map level has already taken up 3,222 files. And I haven't even installed in all of the dialogue and audio yet. So I think Unreal Engine has file resource issues because it creates materials, instances also from textures and doubles up the number of files in many different ways. And the Blueprints also break easily because of engine bugs in the blueprints themselves so certain things are hard to do in the engine because of those bugs issues which is up on the epic bug list.. My game originally started off as a 16 meg batch text script file. That is where I put all my game ideas in..... Unreal Engine is impressive graphically, but the pie editor uses an awful lot of files and slows the engine down.
    And Development in Unreal Engine is painfully slow.

  • @hieptranngoc2584
    @hieptranngoc2584 2 роки тому

    Could you make a tutorial about android / ios / or pc game update it's files without store or download new game build

  • @DevDunkStudio
    @DevDunkStudio 3 роки тому +1

    Nice guide!
    Doesn't this take up a lot more cpu time tho?

  • @jllerena
    @jllerena 4 роки тому

    Great tutorial, neat and simple

  • @spiral9316
    @spiral9316 4 роки тому

    I always recommend your tutorials to anyone who's really into making games or learning unity/c# you are the best anyways
    I also recommend bob Tabor and sine Eric lippert courses

  • @MatthewTrecozzi
    @MatthewTrecozzi 4 роки тому +1

    Hey, does anyone have any more details on how Jason runs his Master Architects Course? The information on the link seems a little ambiguous as to actual start date and course structure.

    • @Unity3dCollege
      @Unity3dCollege  4 роки тому +1

      If you send me an email I can get you some more details tomorrow (wifes bday tonight). I'm working on making the page a little more clear (had put it together before the course opened), so answering your questions and updating that would be great for the FAQ as well and hopefully clarify things for everyone :) - jason@game.courses goes right to my gmail :)

    • @MatthewTrecozzi
      @MatthewTrecozzi 4 роки тому

      @@Unity3dCollege Thanks! I just sent an email with my general questions about course structure as well as some specific ones to my situation.

  • @walaoRIKi
    @walaoRIKi 4 роки тому

    Thanks, love it

  • @uchihakai4200
    @uchihakai4200 2 роки тому

    I ran into some problems with Adressables after I build the game for testing, so far I found out I need to create a custom build script and add specific lines to it to make Adressables work after build.
    could you maybe make a video on how to solve this issue?
    thank your for you content!

    • @uchihakai4200
      @uchihakai4200 2 роки тому

      I tried rebuilding the adressable, not the game project and it made it work after I built the game, yeay!

  • @ringokam101
    @ringokam101 4 роки тому +1

    thanks for the tip

  • @leonardomcpugo
    @leonardomcpugo 3 роки тому

    Hey @jason what about using the "OperationException" property instead of doing the LoadAssetAsync/Dictionary?
    Thanks for your video :)

  • @Gonzakoable
    @Gonzakoable 4 роки тому +1

    In the new talks they're pushing DOTS a lot will you do a video on it?

  • @Thesupperals
    @Thesupperals 2 роки тому

    The Addressables package made some drastic changes. I would still like to use this and can no longer follow along with your tutorial. You wouldn't happen to have a video with the newest version (1.18.19) would you?

  • @moshaaah
    @moshaaah 3 роки тому

    Do we really need to release both the gameObject instance and the operationHandle?? I just used the Addressables.Release on the handle in my demo project, and the gameObject instance has been removed from the scene as well...
    [edit]:
    I found this on the Addressables doc in Memory Management section:
    "...the release method can either take the loaded Asset, or an operation handle returned by the load. For example, during Scene creation (described below) the load returns a AsyncOperationHandle, which you can release via this returned handle, or by keeping up with the handle.Result (in this case, a SceneInstance)."
    [edit 2]:
    The same doc, in GameObject instantiation section:
    "You would need to individually release each returned AsyncOperationHandle or GameObject instance."
    It says 'OR'... not AND...

  • @jameshorn7688
    @jameshorn7688 3 роки тому

    I saw one of your tutorials on reducing texture sizes using the build report to shrink the resource.asset files in the build. I am new to Addressables but have gotten them to work in my project. I was hoping this would help shrink the resource.asset files but I see no change. If you could explain how to use Addressables to reduce the resource.asset file size that would be great. Thanks.

  • @samljer
    @samljer 4 роки тому

    Machine learning in Unity would be great!

  • @blarghblargh
    @blarghblargh 3 роки тому

    I haven't downloaded any sample code, but I looked at the code in the video and I think there might be some threading bugs.
    do you need to take a lock when creating/adding to the queue or draining it after load?
    I don't think Queue is thread safe, and regardless I think the code could end up starving the callback thread and potentially stalling other loads when a lot of spawns are queued unless you guarantee items can't be added while the callback is firing.
    I think there could be a race condition between checking if the async callback is done and enqueuing spawns for post-load, which could result in some spawns being lost/stuck in the queue. also, I think the public spawn method itself isn't thread safe, so you might get race conditions resulting in double instantiating the queue and losing some spawns, etc.
    If the asset manager's async implementation operates as a coroutine/on the main thread instead of on a background thread pool, then this all isn't really an issue of course. Dunno this system, hence why I'm watching the video!

  • @Beirud
    @Beirud 4 роки тому +2

    Any thoughts on DOTS and ECS?

  • @deoldgamer
    @deoldgamer 3 роки тому

    can you explain how addressables connect to asset bundles? and how can I use all of it with the new unity cdn ?

  • @cuiapp9334
    @cuiapp9334 3 роки тому

    Great. I have one problem for it. Can I use local addressables and remote addressables at the same time?

  • @fortisblue
    @fortisblue 2 роки тому +1

    You kinda overcomplicated this with your own system on top of asset references. I was trying it in 2021.1 and couldnt figure out why my texture memory doesnt free after I do ReleaseInstance. Turns out when you do LoadAssetAsync and then InstantiateAsync, they will both increase ref count by 1. So since I'm not using asset bundles I can just remove LoadAssetAsync call.

  • @cankozan1609
    @cankozan1609 4 роки тому +1

    Will there be more stuff about ML Agents or AI Planner ?

  • @user-vb4om3eb8l
    @user-vb4om3eb8l Рік тому

    Hey Jason thanks for this video
    I have a project with 41 sprite animation sequences that need to animate at 30fps, each from a set of 400 HD images. Keeping all of it in memory crashes the software. Can you please suggest something to optimise it or load all images form streaming assets and converting at runtime sprite possible.

  • @lucabassclarinet
    @lucabassclarinet 3 роки тому

    Thank you so much Jason for this tutorial!! I have an app and want to save videos online in order for the game to be lighter. Then, on a specific event, download the videos and be ready to play in a VideoPlayer, that would render in a Raw Image through a simple texture. Do you recommend me to use Addressables Remote? (I can't seem to make it work through Videoplayer Url) Do you have any tutorial related to video streaming/(downloading and destroying) that could be of help? Thank you again so much, really appreciate!

  • @shavais33
    @shavais33 2 роки тому

    @17:58 - how/where is _particleReferences[] getting loaded.. how are you getting that asset reference?

  • @tmi114
    @tmi114 3 роки тому

    @Jason Weimann
    I want to make system which first will get the list of asset bundles available in addressables (to create a menu) and second when I update the bundles (add a bundle to list) I want to be able without updating application get the list of bundles with newly added one. How should a setup addressables to get this kind of result ?

  •  2 роки тому

    I created a prefab level system. Or should I do a scene system? When I exported to android with addressables, my game size doubled and it waited for 6 seconds after the unity logo at startup. Then I deleted the addressables and continued the game with Resources. Now when I run the game, my mobile phone gets hot at the twentieth level. There is an increase in both ram and cpu usage. What should I do? Can you help me?

  • @GoodNewsJim
    @GoodNewsJim 2 роки тому

    Yo, didn't Unity change so you need to manually copy resource folder into STANDALONE live build now?

  • @soyfandev4925
    @soyfandev4925 4 роки тому +1

    thank u so much

  • @hengky19071992
    @hengky19071992 4 роки тому

    nice tutorial,
    i have question sir,
    if i have image/icon asset that i use for UI/Button source image, then i put that image as addressable asset
    then how i reference that image as source image in the button (do we use script at runtime)?

  • @gordorodo
    @gordorodo 4 роки тому +3

    Hi! I'm loving this new Addressables system.
    How would this interact with an object pool? Would this make object pools obsolete or is there still some overhead when instantiating/destroying while using addressables?

    • @zaimatsu
      @zaimatsu 4 роки тому +3

      I think those two can live along just fine. They have quite different responsibilities. Pool will take care of optimised instantiation and destroying and addressables of memory management of loading and unloading resources.

  • @Arrjuun193
    @Arrjuun193 4 роки тому

    Hey Jason,
    Been learning a lot from your videos. Thank you !
    I had this one question about Addressables/Asset Bundles.
    How are the newly created and attached scripts handled ?
    Let's say I have a published game. I create some new prefab with newly created scripts attached and build addressable. Are the scripts compiled and attached or should I rebuild the application and release an update for the addressable to work ?

    • @UmarFarooq-cu3gw
      @UmarFarooq-cu3gw 3 роки тому

      Your newly scripts should work fine if they are working independently.. ie. not breaking the system (not 100% sure) It did work with assetbundles

  • @Heisenberg-xc8ub
    @Heisenberg-xc8ub 3 роки тому

    Hi Jason, this is awesome, I think it would be cool if you can make a video where there are multiple projects where the other projects hold all particles and then another project loads the particles.

  • @supertenchoo4271
    @supertenchoo4271 4 роки тому

    am total beginner but i believe you are a professional i never hear that thing i have couple course on udemy since January i never heard about it
    profiling can you make video for total beginner please about profile so you can go easy step by step for me this was too fast

  • @bibulousape
    @bibulousape 4 роки тому

    Anyone else struggling to make this work for WebGL projects? Everything goes smoothly in the editor but when compiled for WebGL it's just a sea of exceptions in the console.

  • @samirehman4565
    @samirehman4565 4 роки тому

    Hmmm tupac shakur legacy, btw amazing video

  • @juhainaahmed6090
    @juhainaahmed6090 4 роки тому

    Hi.. how can i use addressables ot build several scenes in my project..each project has a 360 video playing in it, a quiz canvas containing several buttons and a score canvas. how can I build them all and create an application file ot load locally in my vr headset..is there any of your videos on the same?

  • @mohammadmoghaddam5266
    @mohammadmoghaddam5266 2 роки тому

    Hi sir
    Does the use of addressable assets reduce the output size of the final apk of the game?!

  • @Ermelious
    @Ermelious 4 роки тому

    is there a way to set AssetReference via code instead of in the inspector via the dropdown list?

  • @marck0zz
    @marck0zz 3 роки тому

    So, What's the difference between addressables and Object Pool?????????????