Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [1.21.1] - 2022-10-5
- Fixed issue where CcdManagedData State was not being set correctly
- Added IP ping timeout to the Hosting Services window.
- Fixed issue where loading cached bundles using WaitForCompletion in 2021.2+ results in an error.
- Fixed issue when loading urls with unconverted special url characters such as a space.
- Fixed issue where folders in Groups window would display the subObjects of assets without expanding the assets.
- Added public API to support more detailed Build Layout
  • Loading branch information
Unity Technologies committed Oct 25, 2022
1 parent 6dc43d0 commit 5a722ef
Show file tree
Hide file tree
Showing 41 changed files with 4,305 additions and 665 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ 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.21.1] - 2022-10-5
- Fixed issue where CcdManagedData State was not being set correctly
- Added IP ping timeout to the Hosting Services window.
- Fixed issue where loading cached bundles using WaitForCompletion in 2021.2+ results in an error.
- Fixed issue when loading urls with unconverted special url characters such as a space.
- Fixed issue where folders in Groups window would display the subObjects of assets without expanding the assets.
- Added public API to support more detailed Build Layout


## [1.20.5] - 2022-08-03
- Fixed issue where object picker for the AssetReferenceDrawer would cut off longer asset names due to only being as wide as the property drawer.
- Improved performance of gathering assets for an AssetReference.
Expand Down Expand Up @@ -1205,3 +1214,5 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.





34 changes: 22 additions & 12 deletions Documentation~/AnalyzeTool.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,21 @@ Analyze is a tool that gathers information on your Projects' Addressables layout
## Using Analyze
In the Editor, open the **Addressables Analyze** window (**Window** > **Asset Management** > **Addressables** > **Analyze**), or open it via the **Addressables Groups** window by clicking the **Tools** > **Window** > **Analyze** button.

The Analyze window displays a list of Analyze rules, along with the following operations:
The Analyze window displays a list of Analyze rules, along with the following operations:

* Analyze Selected Rules
* Clear Selected Rules
* Fix Selected Rules
![](images/addr_analyze_window.png)

![](images/A.png)<br/>Starts the analysis for any selected rules or their children.

![](images/B.png)<br/>Performs the fix action for any selected rules or their children (must be a Fixable rule).

![](images/C.png)<br/>Opens the clear options to clear the results for any selected rules or their children.

![](images/D.png)<br/>Opens the options to import a saved analysis result or export results to disk.

![](images/E.png)<br/>Fixable rules are displayed under the "Fixable Rules" item.

![](images/F.png)<br/>unfixable rules are displayed under the "Unfixable Rules" item.

### The analyze operation
The analyze operation gathers the information needed by the rule. Run this action on a rule or set of rules to gather data about the build, dependency maps, and more. Each rule must gather any required data and report it back as a list of [AnalyzeResult] objects.
Expand All @@ -33,9 +43,9 @@ The provided [Check Duplicate Bundle Dependencies] rule is an example of a fixab
## Provided Analyze rules
### Fixable rules
#### Check Duplicate Bundle Dependencies
This rule checks for potentially duplicated assets, by scanning all groups with [BundledAssetGroupSchemas] and projecting the asset group layout. This essentially requires triggering a full build, so this check is time-consuming and performance-intensive.
This rule checks for potentially duplicated assets, by scanning all groups with [BundledAssetGroupSchemas] and projecting the asset group layout. This essentially requires triggering a full build, so this check is time-consuming and performance-intensive.

**Issues**: Duplicated assets result from assets in different groups sharing dependencies, for example two Prefabs that share a material existing in different Addressable groups. That material (and any of its dependencies) would be pulled into both groups containing the Prefabs. To prevent this, the material must be marked as Addressable, either with one of the Prefabs, or in its own space, thereby putting the material and its dependencies in a separate Addressable group.
**Issues**: Duplicated assets result from assets in different groups sharing dependencies, for example two Prefabs that share a material existing in different Addressable groups. That material (and any of its dependencies) would be pulled into both groups containing the Prefabs. To prevent this, the material must be marked as Addressable, either with one of the Prefabs, or in its own space, thereby putting the material and its dependencies in a separate Addressable group.

**Resolution**: If this check discovers any issues, run the fix operation on this rule to create a new Addressable group to which to move all dependent assets.

Expand All @@ -45,14 +55,14 @@ Also note that duplicate assets may not always be an issue. If assets will never

### Unfixable rules
#### Check Resources to Addressable Duplicate Dependencies
This rule detects if any assets or asset dependencies are duplicated between built Addressable data and assets residing in a `Resources` folder.
This rule detects if any assets or asset dependencies are duplicated between built Addressable data and assets residing in a `Resources` folder.

**Issues**: These duplicates mean that data will be included in both the application build and the Addressables build.

**Resolution**: This rule is unfixable, because no appropriate action exists. It is purely informational, alerting you to the redundancy. You must decide how to proceed and what action to take, if any. One example of a possible manual fix is to move the offending asset(s) out of the `Resources` folder, and make them Addressable.

#### Check Scene to Addressable Duplicate Dependencies
This rule detects any assets or asset dependencies that are shared between the Scenes in the Editor Scene list and Addressables.
This rule detects any assets or asset dependencies that are shared between the Scenes in the Editor Scene list and Addressables.

**Issues**: These duplicates mean that data will be included in both the application build and the Addressables build.

Expand All @@ -61,21 +71,21 @@ This rule detects any assets or asset dependencies that are shared between the S
#### Bundle Layout Preview
This rule will show how assets explicitly marked as Addressable will be laid out in the Addressable build. Given these explicit assets, we also show what assets are implicitly referenced by, and therefore will be pulled into, the build.

Data gathered by this rule does not indicate any particular issues. It is purely informational.
Data gathered by this rule does not indicate any particular issues. It is purely informational.

## Extending Analyze
Each unique Project may require additional Analyze rules beyond what comes pre-packaged. The Addressable Assets System allows you to create your own custom rule classes.
Each unique Project may require additional Analyze rules beyond what comes pre-packaged. The Addressable Assets System allows you to create your own custom rule classes.

See the [Custom analyze rule project] in the [Addressables-Sample] repository for an example.


### AnalyzeRule objects
Create a new child class of the [AnalyzeRule] class, overriding the following properties:
Create a new child class of the [AnalyzeRule] class, overriding the following properties:

* [CanFix] tells Analyze if the rule is deemed fixable or not.
* [ruleName] is the display name you'll see for this rule in the **Analyze window**.

You'll also need to override the following methods, which are detailed below:
You'll also need to override the following methods, which are detailed below:

* [List\<AnalyzeResult\> RefreshAnalysis(AddressableAssetSettings settings)]
* [void FixIssues(AddressableAssetSettings settings)]
Expand Down
Binary file added Documentation~/images/addr_analyze_window.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 5a722ef

Please sign in to comment.