Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [1.18.9] - 2021-06-04
- Added "Select" button for Addressable Asset in Inspector to select the Asset in the Addressables Groups Window.
- Reduced the number of file copies required during building Addressables and moving Addressables content during Player build.
- Fixed issue with AssetReferenceUIRestriction not working with Lists and Arrays.
- Optimised loading AssetBundles to avoid redundent existing file checks.
- Fixed issue with folder asset entries throwing null ref exceptions when doing a Check for Content Update Restriction
- Added documentation about how to implement custom operations with synchronous behavior
- Added option on AddressableAssetSettings to strip the Unity version from the AssetBundle hash during build.
- Added documentation about useful tools you can use when building Addressables content with a CI pipeline
- Added Import Groups tool to Samples folder.
- Updated documentation for setting up and importing addressable assets in packages."
- Fixed issue where multi-group drag and drop places groups in reverse order.
- Fixed issue where an asset entry is no longer selected in the Project window after it is modified on disk.
- Fixed simulated play mode when "Internal Asset Naming Mode" was set to something other than "Full Path"
- Fixed issues with WaitForCompletion getting stuck in infinite loop during failed operations
- Organised AddressableAssetSettings GUI into more distint setting types.
- Fixed issue where the wrong operation would sometimes be returned by the cache when a project contains over 10K addressable assets
- Added path pairs feature
- Fixed issue where AsyncOperationBase.HasExecuted isn't being reset when the operation is reused.
- Added check to ensure that ResourceManager.Update() is never called from within its own callstack.
- Added ability to rename labels from the label window.
- Added the DisableVisibleSubAssetRepresentations option in Settings.
  • Loading branch information
Unity Technologies committed Jun 4, 2021
1 parent 59013cd commit 357035d
Show file tree
Hide file tree
Showing 83 changed files with 2,161 additions and 1,964 deletions.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,29 @@ All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [1.18.9] - 2021-06-04
- Added "Select" button for Addressable Asset in Inspector to select the Asset in the Addressables Groups Window.
- Reduced the number of file copies required during building Addressables and moving Addressables content during Player build.
- Fixed issue with AssetReferenceUIRestriction not working with Lists and Arrays.
- Optimised loading AssetBundles to avoid redundent existing file checks.
- Fixed issue with folder asset entries throwing null ref exceptions when doing a Check for Content Update Restriction
- Added documentation about how to implement custom operations with synchronous behavior
- Added option on AddressableAssetSettings to strip the Unity version from the AssetBundle hash during build.
- Added documentation about useful tools you can use when building Addressables content with a CI pipeline
- Added Import Groups tool to Samples folder.
- Updated documentation for setting up and importing addressable assets in packages."
- Fixed issue where multi-group drag and drop places groups in reverse order.
- Fixed issue where an asset entry is no longer selected in the Project window after it is modified on disk.
- Fixed simulated play mode when "Internal Asset Naming Mode" was set to something other than "Full Path"
- Fixed issues with WaitForCompletion getting stuck in infinite loop during failed operations
- Organised AddressableAssetSettings GUI into more distint setting types.
- Fixed issue where the wrong operation would sometimes be returned by the cache when a project contains over 10K addressable assets
- Added path pairs feature
- Fixed issue where AsyncOperationBase.HasExecuted isn't being reset when the operation is reused.
- Added check to ensure that ResourceManager.Update() is never called from within its own callstack.
- Added ability to rename labels from the label window.
- Added the DisableVisibleSubAssetRepresentations option in Settings.

## [1.18.4] - 2021-05-06
- EditorOnly tagged GameObjects in Scenes are no longer detected as duplicates for Scene Analyze results.
- Fixed issue when dragging multiple groups around within the groups window to set their display order.
Expand Down
30 changes: 21 additions & 9 deletions Documentation~/AddressableAssetSettings.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,35 +22,47 @@ For more information see [Getting Started](AddressableAssetsGettingStarted.md).

The **Manage Profiles** button opens the Profiles window. You can also open the Groups window from the menu **Window** > **Asset Management** > **Addressables** > **Profiles**. For more information see [Addressable Assets Profiles](AddressableAssetsProfiles.md).

#### Diagnostics
| **Property:** | **Function:** |
|:---|:---|
| **Send Profiler Events** | Turning this on enables the use of the [Addressables Event Viewer](MemoryManagement.md#the-addressables-event-viewer). |
| **Log Runtime Exceptions** | When enabled, the Addressables system logs runtime exceptions to the [Unity console](xref:Console). Note that the Addressables system does not throw exceptions at runtime when it encounters loading issues, instead it adds to the error state of the IAsyncOperation and, if this flag is enabled, logs the exception. |

#### Catalog
| **Property:** | **Function:** |
|:---|:---|
| **Disable Catalog Update on Startup** | Whether the Addressables system should skip the check for an updated content catalog when the Addressables system [initializes](InitializeAsync.md). <br/>Note that you can update the catalog later using [Addressables.UpdateCatalogs](UpdateCatalogs.md). |
| **Player Version Override** | Overrides the player version used to generated catalog names.<br/>If left blank, the catalog version name is a timestamp of the current UTC time in the form of "Year.Month.Day.Hour.Minute.Second". |
| **Compress Local Catalog** | Whether the local catalog should be serialized in an asset bundle (compressed) or as json (uncompressed). A compressed catalog uses less space on disk, but must be decompressed when loaded, which can increase CPU usage. |
| **Optimize Catalog Size** | Enables size optimization of content catalogs. This can increase CPU usage when loading the catalog. |

#### Content Update
| **Property** | **Function:** |
|:---|:---|
| **Disable Catalog Update on Startup** | Whether the Addressables system should skip the check for an updated content catalog when the Addressables system [initializes](InitializeAsync.md). <br/>Note that you can update the catalog later using [Addressables.UpdateCatalogs](UpdateCatalogs.md). |
| **Content State Build Path** | The path to the folder in which to save the addressables_content_state.bin file. If empty, the file is saved to Assets/AddressableAssetsData. |
| **Build Remote Catalog** | Whether a remote catalog should be built-for and loaded-by the app. When enabled, content builds generate .json and .hash files for the catalog to **Build Path** and the Addressables system loads these files from **Load Path** at runtime. The system caches the catalog and compares the remote .hash file to the cached version to determine if the catalog itself should be updated (along with any changed AssetBundles). In order to update content in an existing, built app, you must build and host a remote catalog. Overwriting the catalog is how the app gets informed of the updated content. See [Profiles](AddressableAssetsProfiles.md) for more information of configuring build and load paths.|
| **- Build Path** | The path at which to build the content catalog for online retrieval. Typically, this path should be the same as the build path that you use for your remote Addressables groups, such as the RemoteBuildPath profile variable.|
| **- Load Path** | The path or URL from which to load the remote content catalog. Typically, this path should be the same as the load path that you use for your remote Addressables groups, such as the RemoteLoadPath profile variable. It is your responsibility to copy or upload the remote catalog files so that your app can access them at the specified location. |
| **Catalog Download Timeout** | The number of seconds to wait before a catalog .hash or .json download times out. Set to 0 for no timeout. See [UnityWebRequest.timeout](xref:UnityWebRequest.timeout) for more information.|

#### General
#### Downloads
| **Property:** | **Function:** |
|:---|:---|
| **Send Profiler Events** | Turning this on enables the use of the [Addressables Event Viewer](MemoryManagement.md#the-addressables-event-viewer). |
| **Log Runtime Exceptions** | When enabled, the Addressables system logs runtime exceptions to the [Unity console](xref:Console). Note that the Addressables system does not throw exceptions at runtime when it encounters loading issues, instead it adds to the error state of the IAsyncOperation and, if this flag is enabled, logs the exception. |
| **Custom Certificate Handler** | The class to use for custom certificate handling. This type must inherit from [UnityEngine.Networking.CertificateHandler](xref:Networking.CertificateHandler). |
| **Max Concurrent Web Requests** | The maximum number of concurrent web requests. This value is be clamped from 1 to 1024. |
| **Catalog Download Timeout** | The number of seconds to wait before a catalog .hash or .json download times out. Set to 0 for no timeout. See [UnityWebRequest.timeout](xref:UnityWebRequest.timeout) for more information.|

#### Build
| **Property:** | **Function:** |
|:---|:---|
| **Ignore Invalid/Unsupported Files in Build** | Whether unsupported files during build should be ignored or treated as an error. |
| **Unique Bundle IDs** | When enabled, AssetBundles are assigned unique, more complex internal identifiers. This may result in more bundles being rebuilt. See [Content Update Workflow](ContentUpdateWorkflow.md#unique-bundle-ids) for more information. |
| **Contiguous Bundles** | When enabled, the Addressables build script packs assets in bundles contiguously based on the ordering of the source asset, which results in improved asset loading times. Unity recommends that you enable this option. However, enabling this option does result in binary differences in the bundles produced. Disable this option if you've built bundles with a version of Addressables older than 1.12.1 and you want to minimize bundle changes. |
| **Non-recursive Dependency Calculation** | Calculate and build asset bundles using Non-Recursive Dependency calculation methods. This approach helps reduce asset bundle rebuilds and runtime memory consumption. Unity recommends that you enable this option. However, enabling this option does result in binary differences in the bundles produced.<br>**Requires Unity 2020.2.1 or above** |
| **Max Concurrent Web Requests** | The maximum number of concurrent web requests. This value is be clamped from 1 to 1024. |
| **Group Hierarchy with Dashes** | If enabled, group names are parsed as if a '-' represented a child in hierarchy. So a group called 'a-b-c' would be displayed as if it were in a folder called 'b' that lived in a folder called 'a'. In this mode, only groups without '-' can be rearranged within the groups window. |
| **Ignore Invalid/Unsupported Files in Build** | Whether unsupported files during build should be ignored or treated as an error. |
| **Content State Build Path** | The path to the folder in which to save the addressables_content_state.bin file. If empty, the file is saved to Assets/AddressableAssetsData. |
| **Shader Bundle Naming Prefix** | Sets the naming convention used for the Unity built in shader bundle at build time.<br/>The recommended setting is Project Name. |
| **- Shader Bundle Custom Prefix** | Custom Unity built-in shader bundle prefix that is used if AddressableAssetSettings.ShaderBundleNaming is set to ShaderBundleNaming.Custom. |
| **Mono Bundle Naming Prefix** | Sets the naming convention used for the MonoScript bundle at build time. A MonoScript contains information for loading the corresponding runtime class.<br/>The recommended setting is Project Name |
| **- Mono Bundle Custom Prefix** | Custom MonoScript bundle prefix that is used if AddressableAssetSettings.MonoScriptBundleNaming is set to MonoScriptBundleNaming.Custom. |
| **Strip Unity Version from AssetBundles** | When enabled, Unity Editor Version is stripped from the header of the AssetBundle during a build. |

#### Build and Play Mode Scripts
Displays an orderable list of Build Scripts available to use for building Addressables. When Addressables is first set up for a Project, four Build Scripts are included:
Expand Down
4 changes: 4 additions & 0 deletions Documentation~/AddressableAssetsDevelopmentCycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@ The Addressable Assets package has three build scripts that create Play mode dat
#### Use Asset Database (faster)
Use Asset Database mode ([`BuildScriptFastMode`](xref:UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptFastMode)) allows you to run the game quickly as you work through the flow of your game. It loads Assets directly through the Asset database for quick iteration with no analysis or AssetBundle creation.

****Please Note****: Modification's to Serialised Assets (Such as Prefab's and ScriptableObject's) loaded using Asset Database mode modifies the source Asset in the Project.

#### Simulate Groups (advanced)
Simulate Groups mode ([`BuildScriptVirtualMode`](xref:UnityEditor.AddressableAssets.Build.DataBuilders.BuildScriptVirtualMode)) analyzes content for layout and dependencies without creating AssetBundles. Assets load from the Asset database though the [`ResourceManager`](xref:UnityEngine.ResourceManagement.ResourceManager), as if they were loaded through bundles. To see when bundles load or unload during game play, view the Asset usage in the [**Addressables Event Viewer** window](MemoryManagement.md#the-addressables-event-viewer) (**Window** > **Asset Management** > **Addressables** > **Event Viewer**).

Simulate Groups mode helps you simulate load strategies and tweak your content groups to find the right balance for a production release.

****Please Note****: Modification's to Serialised Assets (Such as Prefab's and ScriptableObject's) loaded using Asset Database mode modifies the source Asset in the Project.

#### Use Existing Build (requires built groups)
Use Existing Build mode most closely matches a deployed application build, but it requires you to build the data as a separate step. If you aren't modifying Assets, this mode is the fastest since it does not process any data when entering Play mode. You must either build the content for this mode in the **Addressables Groups** window (**Window** > **Asset Management** > **Addressables** > **Groups**) by selecting **Build** > **New Build** > **Default Build Script**, or using the [`AddressableAssetSettings.BuildPlayerContent()`](xref:UnityEditor.AddressableAssets.Settings.AddressableAssetSettings.BuildPlayerContent) method in your game script.

Expand Down
Loading

0 comments on commit 357035d

Please sign in to comment.