Release Announcements and Notes

Hello all, we will be using this thread to announce each version release, with notes. As you have issues/comments/concerns with the Addressables System, please create new threads as this one will be locked for just release announcements.

With that I’ll mention that 0.2.1-preview is out. This release is primarily a bug fix release. We have several larger changes coming very soon, but wanted to get some bug fixes out now. Notes:

  • Added checks for adding duplicate scenes into the EditorBuildSettings.scenes list
  • Fixed exception when deleting group via delete key, added confirmation to all deletions
  • Fixed bundles being built with default compression instead of compression from settings
  • Fixed bug in tracking loaded assets resulting in not being able to release them properly
  • Added Key property to IAsyncOperation to allow for retrieval of key that requested the operation
  • Added AssetLabelReference to provide inspector UI for selecting the string name of a label
  • Fixed dragging from Resources to a group.
  • Added ability to re-initialize Addressables with multiple runtime data paths. This is to support split projects.
  • Clean up StreamingAssets folder after build/play mode
  • Smoothed transition from 0.1.x data to 0.2.x data

Now released: 0.2.2-preview

This is only a hot-fix for a single issue. The fix involves disabling the Addressable checkbox on all assets until we can get a better fix in at the engine level. More details of the bug are here: [Bug][Hotfixed in 0.2.2-preview] Animation Import Settings inspector is broken

Now released: 0.3.5-preview

Lots changed in this release!

Highlights:

  • Moved asset group data into separate assets in order to better support version control
  • Redesigned the UI, moving most data settings onto actual assets. AddressableAssetSettings and (newly created) AddressableAssetGroup assets.
  • Implemented content update workflow within the Build dropdown. See Addressable Assets development | Package Manager UI website for details.
  • Added support for disabling the automatic initialization of the addressables system at runtime via a script define: ADDRESSABLES_DISABLE_AUTO_INITIALIZATION

Full notes (Changelog | Package Manager UI website)

  • implemented content update workflow. Added a dropdown to the “Build” button on main window’s toolbar.

  • “Build/Prepare for Content Update” will detect assets in locked bundles (bundles flagged as static, by default all local bundles).

  • “Build/Build for Content Update” will build assets with a catalog that is compatible with a previously released player.

  • “Build/Build Packed Data” will build in the same way entering play mode in PackedMode would.

  • implemented Clean Build. “Build/Clean/*” will clear out build caches.

  • cleaned up streaming assets folder better after build

  • moved asset group data into separate assets in order to better support version control

  • fixed bug when canceling export of entries to an AssetEntryCollection

  • fixed several bugs related to caching packed bundles in play mode

  • added option to build settings to control whether streaming assets is cleared after each build

  • enabled CreateBuiltInShadersBundle task in build and preview

  • fixed bug in AA initialization that was cuasing tests to fail when AA is not being used.

  • fixed bug where toggling “send profiler events” would have no effect in some situations

  • default the first 2 converted groups to have StaticContent set to true

  • UI Redesign

  • Moved most data settings onto actual assets. AddressableAssetSettings and AddressableAssetGroup assets.

  • AddressableAssetSettings asset has “Send Profile Events”, list of groups, labels, and profiles

  • AddressableAssetGroup assets have all data associated with that group (such as BuildPath)

  • Made “preview” be a sub-section within the Addressables window.

  • The “Default” group can now be set with a right-click in the Addressables window.

  • Set play mode from “Mode” dropdown on main window’s toolbar.

  • Moved “Hierarchical Search” option onto magnifying glass of search bar. Removed now empty settings cog button.

  • fixed issue when packing groups into seperate bundles generated duplicate asset bundle names, leading to an error being thrown during build

  • added support for disabling the automatic initialization of the addressables system at runtime via a script define: ADDRESSABLES_DISABLE_AUTO_INITIALIZATION

  • added API to create AssetReference from AddressableAssetSettings object in order to create an entry if it does not exist.

  • moving resource profiler from the ResourceManager package to the Addressables package

  • fixed bug where UnloadScene operation never entered Done state or called callback.

  • fixed loading of additonal catalogs. The API has changed to Addressables.LoadCatalogsFromRuntimeData.

  • fixed bug in InitializationOperation where content catalogs were not found.

  • changed content update workflow to browse for cachedata.bin file instead of folder

  • fixed exception thrown when creating a group and using .NET 4.x

  • fixed bugs surrounding a project without addressables data.

  • AssetLabelReference inspector rendering

  • AssetReference drag and drop

  • fixed profiler details view not updating when a mouse drag is completed

  • fixes surrounding the stability of interacting with the “default” group.

  • Added docs for the Content Update flow.

  • Adjusted UI slightly so single-clicking groups shows their inspector.

  • removed not-helpful “Build/Build Packed Data” item from menu.

  • fixed bug where you could no longer create groups, and group assets were not named correctly

2 Likes

Now released: 0.4.6-preview

NOTE: on for iOS builds, turn off code stripping. There is a known bug that we are in-progress fixing.

Highlights (see full list for details):

  • MINIMUM RECOMMENDED VERSION - 2018.2.11+ to avoid bugs in the Animation Import Settings Inspector
  • Added Hosting Services feature; NOTE: the profile will need to be exactly this “http://[PrivateIpAddress]:[HostingServicePort]” unless you are doing custom fancy things. Full docs: Hosting Services | Package Manager UI website
  • AssetReference now stores the loaded asset
  • many changes to the build script and group-data/processor setup.
  • Removed “Preview” and added “Analyze”.

See docs for more information on new features Unity Addressable Asset System | Package Manager UI website

Full Notes (Changelog | Package Manager UI website):

  • MINIMUM RECOMMENDED VERSION - 2018.2.11+
  • We have re-enabled the addressables checkbox. Versions of 2018.2 older than the .11 release will work unless you attempt to view the Animation Import Settings inspector. If you do have animations you need to inspect, use .11+. If you do not, use any official release version of 2018.2.
  • refactored the way IResourceProviders are initialized in the player - serialized data is constructed at runtime to control how the providers are configured
  • added readonly custom inspector for AddressableAssetEntryCollection
  • AssetReference now stores the loaded asset which can be accessed via the Asset property after LoadAsset completes. ReleaseAsset has been modified to not need the asset passed in (the old version is marked obsolete]
  • fixed profiler details view not updating when a mouse drag is completed
  • fixed null-ref when moving Resources to Addressables when there are no Resources
  • blocked moving EditorSceneList within GUI
  • fixed cap on address name length
  • fixed workflows of marking Resources as addressable and moving an addressable into Resources.
  • fixed issue where AssetReferenceDrawer did not mark scene as dirty when changed.
  • added Hosting Services feature; provides extensible framework and implementation for serving packed content to player builds from the Editor
  • replaced addressables buildscript with an interface based system. IDataBuilder class is now used to define builders of specific types of data. The Addressables settings object
    contains a collection of data builders and uses these to create player and play mode data. Users can implemented custom data builders to control the build process.
  • replaced AssetGroupProcessors with a collection of AssetGroupSchema objects. The difference is that the schema objects only contain data and groups can have multiple schemas. The
    logic for processing groups now resides in the build script and uses the schemas as data sources and filters for how to build.
  • Added Initialization objects that can be created during the build to run during addressables initialization
  • Implemented Caching API initialization with initialization objects
  • Changed some API and tests to work with 2019.x
  • fixed how AssetReference’s draw when within lists, arrays, or contained classes
  • Fixed the workflow of scenes moving in and out of the Editor Build Settings Scene list.
  • Removed “Preview” and added “Analyze”.
  • The new system runs any rules it knows about.
  • Currently this is one rule that is manually set up in code. Future work will have additional rules, and expose the ability to create/add user- or project-specific rules
  • This process can be slow, as it runs most of a build to get accurate data.
  • Within the Analyze window there is a “fix” button that allows each rule to fix any issues if the rule knows how.
  • The current rule is a “check duplicate asset” rule. This looks for assets that are pulled into multiple asset bundles due to dependency calculations. The way it fixes things is to move all of those into a newly created group.
  • Added option to toggle logging of all exceptions within the Resource Manager
  • Refactored initialization of the addressable asset settings to prevent it getting into a bad state.

Now released: 0.4.8-preview

This is primarily a hot-fix to deal with the fact that iOS builds didn’t work with code stripping on. Now they do.

full notes: Changelog | Package Manager UI website

2 Likes

Now released: 0.5.2-preview

Edit - the Unite LA talk is up and covers a lot of concepts about the workflow
https://www.youtube.com/watch?v=U8-yh5nC1Mg

As of this release, the Addressables package should start showing up in the Package Manager UI before it’s been added to the manifest (no more editing that file manually). This should take place within a day or two of this post.

The most important change from this release is that we have disabled automatic asset bundle building. The reasoning as copied from the changelog:

That used to happen when you built the player, or entered play mode in “packed mode”. This is no longer the case. You must now select “Build->Build Player Content” from the Addressables window, or call AddressableAssetSettings.BuildPlayerContent(). We did this because we determined that automatic building did not scale well at all for large projects.

For those using the Scriptable Build Pipeline directly, it’s worth noting that it had some API changes. See Changelog | Package Manager UI website for details.

Notes on future work

  • the next release will most likely be a 1.0.X-preview and include some API changes. We currently don’t have any large functional changes coming with those. Primarily it will be some changes to naming and namespaces to make the new-user experience more intuitive. Details will be in the changelog, I just want to give the heads up now.
  • We are working towards getting out of preview in the first half of next year, but it is unclear if or how exactly that will be tied to versions of the editor.
  • The releases of the package so far are compatible with 2018.2 and 2018.3. Full 2019.* support is in-progress.
  • Support over the next month or so will be light as the team has holiday.

full Addressables notes: Changelog | Package Manager UI website

  • IMPORTANT CHANGE TO BUILDING
  • We have disabled automatic asset bundle building. That used to happen when you built the player, or entered play mode in “packed mode”. This is no longer the case. You must now select “Build->Build Player Content” from the Addressables window, or call AddressableAssetSettings.BuildPlayerContent(). We did this because we determined that automatic building did not scale well at all for large projects.
  • fixed regression loading local bundles
  • Added Adddressables.DownloadDependencies() interface
  • fixes for Nintendo Switch support
  • Fixed issues around referencing Addressables during an Awake() call
  • Code refactor and naming convention fixes
  • Cleaned up missing docs
  • Content update now handles not having and groups marked as Static Content
  • Fixed errors when browing for the addressables_content_state.bin and cancelling
  • Moved addressables_content_state.bin to be generated into the addressables settings folder
  • Changed some exceptions when releasing null bundles to warnings to handle the case of releasing a failed download operation
  • Separated hash and crc options to allow them to be used independently in asset bundle loads.
  • Use CRC in AssetBundle.LoadFromFileAsync calls if specified
  • Always include AssetBundleRequestOptions for asset bundle locations
5 Likes

Now released: 0.5.3-preview

We’ve released a hot-fix to handle package upgrades. If someone was upgrading from 0.4.x to 0.5.2, the packed play mode asset would go away. This is now fixed.

Note, that if you have already updated to 0.5.2, you may have extra “Packed Mode” assets in your AddressableAssetSettings object. This is harmless. If it bothers you, you can inspect the AddressableAssetSettings object (same place you’d set profile data), and look in the “Data Builders” section. If you see multiple “Packed Mode” entries, you can remove all but one using the “-” button.

3 Likes

0.6.6-preview is here. I have two general notes, then I’ll get to the specifics.

First, an apology for the large delay between last release and this one. Between the holidays, some other priorities popping up, and some large refactoring, this release took far longer than expected. Moving forward, our goal is to release as close to monthly as possible.

Second, you may have noticed that this is not “1.0”. I had mentioned on a couple threads that 1.0 was coming. This release does change some APIs, so we had been planning to move to a 1.0 after that, but in our review, we realize we still have some APIs to change. We are now planning to hold off on 1.0 until we are rock-solid on our interfaces, so that we will not change things once that comes along. I expect this to mean two, or maybe three, more releases, followed by a 1.0 in the May/June time frame. As a bit of reassurance, the interface changes between now and then should not affect most users. For example, we made some changes to the IResourceProvider interface in this release, and will be making some more in the next one. These changes, while public, will only affect those creating custom providers.

Changelog highlights:

  • Minimum Unity version is now 2018.3 due to a soon-to-be fixed bug in the engine. If you use the progressive light mapper, prefabs will not be lit correctly when built with Addressables, unless you are using 2019.2 alpha, or, very soon, 2019.1 or 2018.3. The fix is not yet in those versions of the engine.
  • BREAKING CODE CHANGES
  • to ease code navigation, we have added several layers of namespace to the code.
  • All Instantiate API calls (Adddressables and AssetReference) have been changed to only work with GameObjects.
  • any hardcoded profile path to com.unity.addressables (specifically LocalLoadPath, RemoteLoadPath, etc) should use UnityEngine.AddressableAssets.Addressables.RuntimePath instead.
    For build paths, replace Assets/StreamingAssets/com.unity.addressables/[BuildTarget] with [UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]
    For load paths, replace Assets/StreamingAssets/com.unity.addressables/[BuildTarget] with {UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]
  • We have removed attribute AssetReferenceTypeRestriction as it is cleaner to enforce type via generics
  • Attribute AssetReferenceLabelRestriction is renamed to AssetReferenceUILabelRestriction and must be surrounded by #if UNITY_EDITOR in your game code, to enforce it’s editor-only capability
  • Modifications to IResourceProvider API.
  • Removed PreloadDependencies API. Instead use DownloadDependencies
  • Remote content catalog now built based on locations specified in top level AddressableAssetSettings inspector (rather than building one remote catalog per group)

and oh so many bug fixes. Full Notes: (Changelog | Package Manager UI website)

[0.6.6-preview] - 2019-03-05

  • BREAKING CODE CHANGES

  • to ease code navigation, we have added several layers of namespace to the code.

  • All Instantiate API calls (Adddressables and AssetReference) have been changed to only work with GameObjects.

  • any hardcoded profile path to com.unity.addressables (specifically LocalLoadPath, RemoteLoadPath, etc) should use UnityEngine.AddressableAssets.Addressables.RuntimePath instead.
    For build paths, replace Assets/StreamingAssets/com.unity.addressables/[BuildTarget] with [UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget] For load paths, replace Assets/StreamingAssets/com.unity.addressables/[BuildTarget] with {UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]

  • We have removed attribute AssetReferenceTypeRestriction as it is cleaner to enforce type via generics

  • Attribute AssetReferenceLabelRestriction is renamed to AssetReferenceUILabelRestriction and must be surrounded by #if UNITY_EDITOR in your game code, to enforce it’s editor-only capability

  • Modifications to IResourceProvider API.

  • Removed PreloadDependencies API. Instead use DownloadDependencies

  • Content Update calculation has changed, this will invalide previously generated addressables_content_state.bin files.

  • Some types for content update were made private as a result of the above change.

  • Minimum Unity version is now 2018.3 to address a build-time bug with progressive lightmapper.

  • Moved all of the Resource Manager package to be contained within Addressables (no longer a stand alone package). No code change implications.

  • Change to content catalog building:

  • Previous model built one catalog per group, wherever that group built it’s data.

  • New model builds one catalog locally, and optionally one “remote”. Remote location is set on the top level AddressableAssetSettings object.

  • Loading will now always check if remote has changes (if remote exists), and use local otherwise (or cached version of remote).

  • LoadScene API now takes the LoadSceneParameters that were added to the engine in 2018.2

  • Exposed AddressablesBuildDataBuilderContext.BuildScriptContextConstants for use in build scripts.

  • Refactored AddressablesBuildDataBuilderContext.GetValue to take default parameter.

  • Fixed Scene asset path to be consistent between different play modes in the catalog data.

  • Exposed the various IDataBuilder implementations as public classes.

  • Exposed asset and bundle provider types for BundledAssetGroupSchema.

  • Fixed several bugs when loading catalogs from other projects.

  • Added provider suffix to Initialization operation and Adddressables.LoadCatalogsFromRuntimeData API to better support overriding providers.

  • Exposed CachedProvider options in BundledAssetGroupSchema. Each unique set of parameters will generate a separate provider. There is also an option to force a group to have its own providers.

  • Added IEnumerable Keys property to IResourceLocator interface.

  • Exposed InitializationOperation as public API.

  • Added BuildTarget to ResourceManagerRuntimeData. This is used to check if the generated player content was built with the same build target as the player or the editor when entering play mode.

  • Removed warnings generated from not finding the cached catalog hash files, which is not an error.

  • Fixed bug where scenes were not unloading.

  • Fixed GUI exception thrown in group inspector.

  • Fixed error case where an asset (usually a bundle) was loaded multiple times as different types (object and AssetBundle).

  • Fixed divide by zero bug when computing load percent of simulated asset bundles.

  • AddressableAssetBuildResult.CreateResult now takes the settingsPath as a parameter to pass this to the result.

  • Fix AssetReference GUI when the AssetReference is inside an array of classes, part of a SerializedObject, or private.

  • Fix AssetReferenceSprite to properly support sprites (as opposed to Texture2D’s).

  • Fixed bug involving scenes being repeatedly added to the build scenes list.

  • Removed deprecated and obsolete code. If you are upgrading from a very old version of Addressables, please update to 0.5.3-preview first.

  • Removed the default MergeMode on LoadAssets calls to enforce explicit behavior.

  • Added IAsyncOperation GetDownloadSize(object key) API to compute remaining data needed to load an asset

  • Fixed assets being stuck in a read-only state in UI

  • Unified asset moving API to clean up public interface

  • Added PlayerVersion override to AddressableAssetSettings

  • Ensure UI cannot show invalide assets (such as .cs files)

  • Renamed Adddressables.LoadAddtionalCatalogs to Addressables.LoadContentCatalog and now it takes the path of the catalog instead of the settings file

  • Moved provider information from ResourceManagerRuntimeDate into ContentCatalogData

  • Updating ResourceManager to be a non-static class

  • Fixed bugs surrounding assets moving in or out of Resources (outside Addressables UI)

  • Fixed the AssetReference dropdown to properly filter valid assets (no Resources and honoring type or label limitations).

  • Fixed AssetReferences to handle assets inside folders marked as Addressable.

  • Added attribute AssetReferenceUIRestriction to support user-created AssetReference restrictions (they are only enforced in UI, for dropdown and drag&drop)

  • Changed addressables_content_state.bin to only build to the folder containing the AddressableAssetSettings object (Assets/AddressableAssetsData/ in most cases)

  • Fixed issue where the wrong scene would sometimes be open post-build.

14 Likes

0.6.7-preview is here.

This patch just fixes an issue with iOS (and sometimes Android) builds. Occasionally a needed class was getting stripped. The missing class has now been added to our generated link.xml.

6 Likes

0.6.8-preview is here

This is a hot fix patch to deal with the Build for Content Update. Apparently it had been doing a content update build, then deleting everything it built locally. Technically this was ok for the update part, as the deployed player can only update remote content. But this meant you couldn’t go into play mode, or do useful things locally.

4 Likes

Now released: 0.7.4-preview

Note that the docs for the new release are not up yet. Our package doesn’t always play nicely with the doc tools, and the holiday weekend as slowed the manual effort needed to work around that. I expect the docs to be up later this week. In the mean time, the full changelog is below

Highlights

  • We’ve changed where we build content, and recommend you delete the old files unless you need them.
    – The content_state.bin is no longer in Assets/AddressableAssetsData, but in Assets/AddressableAssetsData/
    – The content formerly built into Assets/StreamingAssets/aa will now be built into the Library, then copied into Assets/StreamingAssets/aa only during player builds. This copy occurs pre-build, then cleans itself up post-build. So your StreamingAssets folder will remain as-is.
  • We no longer support .NET 3.x. Please update to .NET 4.x
  • Known issue: there is still an occasional issue with code stripping on iOS. If you run into iOS issues, try turning stripping off for now.

Full changelog (once it’s live: Changelog | Package Manager UI website)

  • Removed support for .NET 3.x as it is deprecated for Unity in general.
  • Replaced IAsyncOperation with AsyncOperationHandle.
  • Once the asset is no longer needed, the user can call Addressables.Release, passing in either the handle, or the result the handle provided.
  • Exposed AsyncOperationBase for creating custom operations
  • These operations must be started by ResourceManager.StartOperation
  • Replaced IDataBuilderContext and it’s inherited classes with simpler AddressablesDataBuilderInput. This class is fed into all IDataBuilder.BuildData calls.
  • Fixed Nintendo Switch and PlayStation4 support.
  • Simplified the IResourceProvider interface.
  • Refactored build script interface. Made BuildScriptBase and the provided concrete versions easier to inherit from.
  • Removed DelayedActionManager.
  • Removed ISceneProvider. Users can implement custom scene loading using a custom AsyncOperationBase.
  • Removed optional LRU caching of Assets and Bundles.
  • Addressables Profiler now tracks all active async operations
  • AssetBundles targetting StreamingAssets (by using the profile variable [UnityEngine.AddressableAssets.Addressables.BuildPath] now build to the Library instead of StreamingAssets. During the player build, these files are copied into StreamingAssets, then after the build, the copies are deleted. They are also built into platform specific folders (so building for a second platform will not overwrite data from a first build). We recommend deleting anything in Assets/StreamingAssets/aa.
  • The addressables_content_state.bin is built into a platform specific folder within Assets/AddressableAssetsData/. We recommend deleting the addressables_content_state.bin in Assets/AddressableAssetsData to avoid future confusion.
  • ScriptableBuildPipeline now purges stale data from its cache in the background after each build.
  • Disabled Addressables automatic initialization. It will now initialize itself upon the first call into it (such as Load or Instantiate). To Initialize on startup instead of first use, call Addressables.Initialize().
  • Optimized performance around instantiation and general garbage generation.
  • Added per-group bundle compression settings.
  • Fixes to AssetReference drawers.
  • Improved the group template system for creating better defined asset groups.
  • Fixed bug in bundle caching that caused GetDownloadSize to report incorrectly
  • Cleaned up Load/Release calls to make sure all releases could take either the handle returned by Load, or the handle.Result.
  • Added editor-only analytics (nothing added in runtime). If you have Analytics disabled in your project nothing will be reported. Currently only run when you build addressables, it includes data such as Addressables version and Build Script name.
  • Fixed null ref issue when cleaning all the data builders
  • KNOWN ISSUE: there is still an occasional issue with code stripping on iOS. If you run into iOS issues, try turning stripping off for now.
4 Likes

Now released: 0.7.5-preview

This is a small bug fix release, primarily to get scene loading in built players to work.

The changelog online has not updated yet (Changelog | Package Manager UI website) so here is the contents:

  • Fixed issue with scene loading in the player. If problems persist, please do Build->Clean->All from the Addressables Window.
  • Fixed the Addressables Profiler window. It was occasionally not drawing.
  • Fixed the return value of LoadAssets when the key is unknown.
  • Added logging to inform what’s going on (copies of data) during a player build.
1 Like

Now available… a collection of sample projects.
GitHub - Unity-Technologies/Addressables-Sample: Demo project using Addressables package

This github repo has 3 sample projects as of now. Each intending to show a single usage of addressalbes in an isolated setup. These are intentionally as simplistic as possible to keep the focus on how to do whatever it is they are doing.

Over time, we intend to add more projects. If you have ideas or feedback, please create another thread on this forum letting us know!

7 Likes

Now Released 0.8.4-preview
as is common, the docs are not up yet, but should be very soon.

Highlights

  • We renamed almost everything! Well, just the methods that are asynchronous at runtime. We added the word Async to them. This was driven by internal API review, and the desire to align with all of the other async methods in Unity. This should auto-upgrade as long as you click the “i made a backup, go ahead” button when asked.
  • We began work revamping the Analyze functionality. It’s been moved into it’s own window, with a few usability tweaks. More is in the works here.
  • Note that AsyncOperationHandle has changed namespaces. This cannot be auto-upgraded, and will require manual fixing. (and the auto upgrade of the Async rename will probably not run until this is fixed manually)

Full Changelog (once live) Changelog | Package Manager UI website

  • BREAKING CODE CHANGES
  • Chagned all asynchronous methods to include the word Async in method name. This fits better with Unity’s history and convention. They should auto upgrade without actually breaking your game.
  • Moved AsyncOperationHandle inside namespace UnityEngine.ResourceManagement (no auto-upgrade here).
  • Addressable Analyze changes:
  • Analyze has been moved into it’s own window.
  • CheckSceneDupeDependencies Analyze rule has been added.
  • CheckDupeDependencies has been renamed into CheckBundleDupeDependencies.
  • Analyze Rule operations for individuals or specific sets of Analyze Rules has been added via AnalyzeRule selections.
3 Likes

Now Released 0.8.6-preview

This is a hot fix for scene unloading. Calling UnloadScene with a handle was fine, but passing in a SceneInstance was broken. Both versions now unload properly.

3 Likes

Now Released 1.1.3-preview
as is common, the docs are not up yet, but should be very soon.

Two road-map notes:

  1. We should be dropping the “-preview” tag in roughly two months. Between now and then, the plan is to just work on some bug fixes, with no API or large feature changes
  2. Much of the team has holiday as well as a team off-site in the coming month. So expect slow responses on the forums or with bug reports.

Highlights

  • ReleaseInstance will not destroy objects it does not recognize. Returns bool if it destroyed (recognized) object or not
  • Added PrimaryKey to IResourceLocation. By default, this will be the address.
  • Exposed AnalyzeRule class to support creating custom rules for Addressables analysis

Full Changelog (once live) Changelog | Package Manager UI website

  • BREAKING CODE CHANGES
  • ReleaseInstance will now return a bool saying if it successfully destroyed the instance. If an instance is passed in that Addressables is unaware of, this will return false (as of 0.8 and earlier, it would print a log, and still destroy the instance). It will no longer destroy unknown instances.
  • Added PrimaryKey to the IResourceLocation. By default, the PrimaryKey will be the address. This allows you to use LoadResourceLocationsAsync and then map the results back to an address.
  • Added ResourceType to IResourceLocation.
  • This allows you to know the type of a location before loading it.
  • Fixes a problem where calling Load*(key) would load all items that matched the key, then filter based on type. Now it will do the filter before loading (after looking up location matches)
  • This also adds a Type input to LoadResourceLocationsAsync. null input will match all types.
  • Safety check AssetReference.Asset to return null if nothing loaded.
  • New rule added to Analyze window - CheckResourcesDupeDependencies - to check for dependencies between addressables and items in Resources
  • Added group rearranging support to the Addressables window.
  • Improved logging when doing a Prepare for Content Update.
  • Added versions of DownloadDependencies to take a list of IResourceLocations or a list of keys with a MergeMode.
  • Fixed scenario where Task completion wouldn’t happen if operation was already in a certain state
  • Made LoadResourceLocations no longer throw an exception if given unknown keys. This method is the best way to check if an address exists.
  • Exposed AnalyzeRule class to support creating custom rules for Addressables analysis.
  • Fixed some issues surrounding loading scenes in build scenes list via Addressables
  • Removed using alias directives defined in global space.
  • Proper disposal of DiagnosticEventCollector and DelayedActionManager when application closes.
  • Added support for loading named sub-objects via an “address.name” pattern. So a sprite named “trees” with sub-sprites, could be loaded via LoadAssetAsync(“trees.trees_0”).
  • Known issue: loading IList from a Texture2D or IList from an fbx will crash the player. The workaround for now is to load items by name as mentioned just above. Engine fix for this is on its way in.
4 Likes

Now Released 1.1.4-preview

This is a hot fix for ensuring no editor types are not included in location data. This covers several edge cases, but the primary scenario is for AnimatorControllers, which need to be re-targetted a RuntimeAnimatorController.

1 Like

Now Released 1.1.5 (note the distinct lack of “-preview”)

This is basically 1.1.4 with two small bug fixes. We have been doing additional bug fixes in a separate branch which will role out in a future release, but we wanted the first non-preview to have little changed from the previous release.

With this release out, we are planning to spend the next couple months focused heavily on continued bug fixing without adding features or modifying API. We may add some to the API, but do not intend to break code, and most importantly, not break your data. We want to thank all of you that have stuck with us and continued to give feedback on the package. Please keep the feedback coming on the forum and through Unity’s bug reporting tool. We are growing the team working on addressables, and will continue to make supporting it and supporting you, our users, our priority.

Changelog once it’s up will be at: Changelog | Package Manager UI website

13 Likes

Now Released 1.1.7

Now that we are out of preview, we are solidly staying within the rules of semver. So any 1.1.x will have untouched APIs. When we move to 1.2.x, we will add API, but not allow any code breakage.

This is primarily a bug fix release, so there isn’t really a “highlight”. There’s probably one at least worth noting above the others, but I’d recommend just giving the full list a read.

the maybe more important one: This is related to static group bundle name has changed in catalog when build for content update

  • Added options for bundle naming: AppendHash, NoHash, OnlyHash.
  • As a temporary workaround for updating issues, we recommend setting all groups with StaticContent=true to be NoHash. This will make sure the updated catalog still refers to the correct unchanged bundle. An actual fix will be out in a few releases.

Full List

[1.1.7] - 2019-07-30

  • Fixed chain operation percent complete calculation.
  • Fixed scenario where deleting assets would also delete groups that have similar names.
  • Fix in bundle caching bug surrounding bundles with ‘.’ in their name
  • Significant improvements to the manual pages
  • Made the many init-logs not log unless ADDRESSABLES_LOG_ALL is defined in player settings (other logs always worked this way, init didn’t).
  • Prevented NullReferenceException when attempting to delete entries in the Addressables window.
  • Fix for building by label (Bundle Mode = Pack Together By Label)
  • Removed ability to mark editor-only assets as addressable in GUI
  • Better fix to Editor types being added to the build
  • Made BuiltIn Data group read-only by default.
  • Fixed NullRef caused by an invalid (BuildIn Data) group being default during a build.
  • Fixed path where LoadResourceLocationsAsync could still throw an exception with unknown key. Now it should not, and is a safe way to check for valid keys.
  • If Key does not exist but nothing else goes wrong, it will return an empty list and Success state.
  • Fixed NullRef caused when there was a deleted scene in the scenes list.
  • BuildCompression for Addressables can now be driven from the default group. If necessary WebGL builds will fallback to LZ4Runtime and all other build targets will fallback to LZMA.
  • Added options for bundle naming: AppendHash, NoHash, OnlyHash.
  • As a temporary workaround for updating issues, we recommend setting all groups with StaticContent=true to be NoHash. This will make sure the updated catalog still refers to the correct unchanged bundle. An actual fix will be out in a few releases.
12 Likes

Now Released 1.1.9

Another round of (mostly) bug fixes, here’s the full changelog:

  • Fixed drag and drop NullRef in main addressables window.
  • Fixed AudioMixer type assets getting stripped from bundles.
  • Fixed issue where failed async operations weren’t getting released from the async operation cache. This fixes the ability to retry a failed download.
  • Fix unloading of scenes so that the dependencies will wait for the unload operation to complete before unloading. This was causing an occasional 1-frame visual glitch during unload.
  • Fixed scenario where AsyncOperation Task fails to complete when AsyncOperation has already completed.
  • Fixed a missed init-log that was stuck always-logging.
  • Fixed issue around assets losing dependencies when unloaded then reloaded. This would manifest most often as sprites losing their texture or prefabs losing their shader/material/texture.
  • Changed checks for determining if a path is remote or not from looking for “://” to looking for starting with “http”. “://” is still used to determine if the asset should be loaded via UnityWebRequest or not.
  • Added Analyze Rule to show entire Asset Bundle layout
  • Added progress bars and some optimizations for calculating analyze rules
10 Likes