docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Create custom rules for Addressables Analyze

    You can create custom rules for the Addressables Analyze window with the AnalyzeRule class.

    Create a custom rule

    To create a custom rule, create a new child class of the AnalyzeRule class, and override the following properties:

    • CanFix: Set whether the rule is fixable or not.
    • ruleName: Set the display name of the rule, which is displayed in the Addressables Analyze window.

    You'll also need to override the following methods:

    RefreshAnalysis

    RefreshAnalysis is the analyze operation. In this method, perform any calculations and cache any data you might need for a potential fix. The return value is a List<AnalyzeResult> list. Create a new AnalyzeResult for each entry in your analysis, containing the data as a string for the first parameter and a message type for the second (to optionally designate the message type as a warning or error). Return the list of objects you create.

    If you need to make child elements in the TreeView for a particular AnalyzeResult object, you can delineate the parent item and any children with kDelimiter. Include the delimiter between the parent and child items.

    FixIssues

    FixIssues is the fix operation. If there's an appropriate action to take in response to the analyze step, execute it here.

    Tip

    If you set CanFix to false, you don't have to override the FixIssues method.

    ClearAnalysis

    ClearAnalysis is the clear operation. Any data you cached in the analyze step can be cleaned or removed in this method. The TreeView will update to reflect the lack of data.

    Adding custom rules to the Addressables Analyze window

    A custom rule must register itself with the GUI class using AnalyzeSystem.RegisterNewRule<TRule>, to display in the Addressables Analyze window. For example:

    
    using UnityEditor;
    using UnityEditor.AddressableAssets.Build;
    using UnityEditor.AddressableAssets.Build.AnalyzeRules;
    
    class MyRule : AnalyzeRule
    {
        // Rule code...
    }
    
    // Register rule
    [InitializeOnLoad]
    class RegisterMyRule
    {
        static RegisterMyRule()
        {
            AnalyzeSystem.RegisterNewRule<MyRule>();
        }
    }
    
    

    AnalyzeRule classes

    To make it faster to setup custom rules, Addressables includes the following classes, which inherit from AnalyzeRule:

    • BundleRuleBase is a base class for handling AnalyzeRule tasks. It includes some basic methods to retrieve information about AssetBundle and resource dependencies.
    • Check bundle duplicates base classes help check for AssetBundle dependency duplicates. Override the FixIssues method implementation to perform a custom action:
      • CheckBundleDupeDependencies inherits from BundleRuleBase and includes further methods for AnalyzeRule to check AssetBundle dependencies for duplicates and a method to attempt to resolve these duplicates.
      • CheckResourcesDupeDependencies is the same, but resource dependencies specific.
      • CheckSceneDupeDependencies is the same, but for scene dependencies specific.

    Additional resources

    • AnalyzeRule API reference
    • Analyze window
    • Analyze window reference
    • Analyze Addressable layouts
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)