diff --git a/CHANGELOG.md b/CHANGELOG.md index e7b88ed5..6864a2e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ 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.19.14] - 2021-12-2 +- Fix issue where opening the Analyze window logs null exceptions after running the "Check Duplicate Bundle Dependencies" rule. + ## [1.19.13] - 2021-11-29 - Removed AddressableAssetEntryCollection upgrade check on opening project. Improving startup performance. - Fixed issue where GetAllAsset with includeSubObjects did not get subObjects within Assets in an Addressable folder. @@ -1067,3 +1070,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [0.0.8-preview] - 2018-02-08 - Initial submission for package distribution + diff --git a/Editor/Build/AnalyzeRules/CheckBundleDupeDependencies.cs b/Editor/Build/AnalyzeRules/CheckBundleDupeDependencies.cs index f9658a4b..fe259d38 100644 --- a/Editor/Build/AnalyzeRules/CheckBundleDupeDependencies.cs +++ b/Editor/Build/AnalyzeRules/CheckBundleDupeDependencies.cs @@ -70,8 +70,7 @@ from bundle in issueGroup.Value from item in bundle.Value select new AnalyzeResult { - resultName = ruleName + kDelimiter + - issueGroup.Key + kDelimiter + + resultName = issueGroup.Key + kDelimiter + ConvertBundleName(bundle.Key, issueGroup.Key) + kDelimiter + item, severity = MessageType.Warning @@ -84,8 +83,7 @@ from bundle in issueGroup.Value from item in bundle.Value select new AnalyzeResult { - resultName = ruleName + kDelimiter + - item + kDelimiter + + resultName = item + kDelimiter + ConvertBundleName(bundle.Key, issueGroup.Key) + kDelimiter + issueGroup.Key, severity = MessageType.Warning diff --git a/Editor/GUI/AssetSettingsAnalyzeTreeView.cs b/Editor/GUI/AssetSettingsAnalyzeTreeView.cs index e426444d..d1e34fe0 100644 --- a/Editor/GUI/AssetSettingsAnalyzeTreeView.cs +++ b/Editor/GUI/AssetSettingsAnalyzeTreeView.cs @@ -257,18 +257,17 @@ protected override TreeViewItem BuildRoot() return root; } - private readonly Dictionary hashToTreeViewItems = new Dictionary(); + private readonly Dictionary hashToAnalyzeResults = new Dictionary(); void BuildResults(TreeViewItem root, List ruleResults) { - hashToTreeViewItems.Clear(); - hashToTreeViewItems.Add(root.id, root); + hashToAnalyzeResults.Clear(); int updateFrequency = Mathf.Max(ruleResults.Count / 10, 1); for (int index=0; index < ruleResults.Count; ++index) { var result = ruleResults[index]; if (index == 0 || index % updateFrequency == 0) - EditorUtility.DisplayProgressBar("Building Results Tree...", result.resultName, (float)index / hashToTreeViewItems.Keys.Count); + EditorUtility.DisplayProgressBar("Building Results Tree...", result.resultName, (float)index / hashToAnalyzeResults.Keys.Count); var resPath = result.resultName.Split(AnalyzeRule.kDelimiter); string name = string.Empty; @@ -279,16 +278,16 @@ void BuildResults(TreeViewItem root, List ruleResults name += resPath[i]; int hash = name.GetHashCode(); - if (!hashToTreeViewItems.ContainsKey(hash)) + if (!hashToAnalyzeResults.ContainsKey(hash)) { AnalyzeResultsTreeViewItem item = new AnalyzeResultsTreeViewItem(hash, i + m_CurrentDepth, resPath[i], result.severity, result); - hashToTreeViewItems.Add(item.id, item); + hashToAnalyzeResults.Add(item.id, item); parent.AddChild(item); parent = item; } else { - var targetItem = hashToTreeViewItems[hash] as AnalyzeResultsTreeViewItem; + var targetItem = hashToAnalyzeResults[hash]; targetItem.results.Add(result); parent = targetItem; } diff --git a/package.json b/package.json index ffa46e2c..ed8f2f7e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.addressables", "displayName": "Addressables", - "version": "1.19.13", + "version": "1.19.14", "unity": "2019.4", "description": "The Addressable Asset System allows the developer to ask for an asset via its address. Once an asset (e.g. a prefab) is marked \"addressable\", it generates an address which can be called from anywhere. Wherever the asset resides (local or remote), the system will locate it and its dependencies, then return it.\n\nUse 'Window->Asset Management->Addressables' to begin working with the system.\n\nAddressables use asynchronous loading to support loading from any location with any collection of dependencies. Whether you have been using direct references, traditional asset bundles, or Resource folders, addressables provide a simpler way to make your game more dynamic. Addressables simultaneously opens up the world of asset bundles while managing all the complexity.\n\nFor usage samples, see github.com/Unity-Technologies/Addressables-Sample", "keywords": [ @@ -22,10 +22,10 @@ "repository": { "url": "https://github.cds.internal.unity3d.com/unity/Addressables.git", "type": "git", - "revision": "c1efa1cfd8c5d9fe3dabf5a3f1c124f55a9da3a8" + "revision": "2f2f6d64d36d06cfbd51d6f1eae1b0c1cb0ebd48" }, "upmCi": { - "footprint": "034a43f97aed757bba6233814599966361fffaa1" + "footprint": "fb23c2acf23b281d0c319b8cf4eaa4bd5fe60255" }, "samples": [ {