public AssetBundleAnalyzerController(AssetBundleCollection assetBundleCollection)
        {
            m_AssetBundleCollection = assetBundleCollection != null ? assetBundleCollection : new AssetBundleCollection();

            //注册事件
            m_AssetBundleCollection.EventOnLoadingAssetBundle += OnLoadingAssetBundle;
            m_AssetBundleCollection.EventOnLoadingAsset       += OnLoadingAsset;
            m_AssetBundleCollection.EventOnLoadCompleted      += OnLoadCompleted;

            m_DependencyDatas         = new Dictionary <string, DependencyData>();
            m_ScatteredAssetInfos     = new Dictionary <string, List <AssetInfo> >();
            m_AnalyzedStamps          = new HashSet <Stamp>();
            m_CircularDependencyDatas = new List <string[]>();
        }
        //编辑器内资源列表排序顺序,可以是 Name(资源文件名)、Path(资源全路径)或者 Guid(资源GUID)。
        //private AssetSorterType m_AssetSorter;

        public AssetBundleEditorController()
        {
            m_ConfigurationPath = Type.GetConfigurationPath <AssetBundleEditorConfigPathAttribute>() ?? Utility.Path.GetCombinePath(Application.dataPath, "GameFramework/Configs/AssetBundleEditor.xml");

            m_AssetBundleCollection = new AssetBundleCollection();

            m_AssetBundleCollection.EventOnLoadingAssetBundle += delegate(int index, int count)
            {
                if (EventOnLoadingAssetBundle != null)
                {
                    EventOnLoadingAssetBundle(index, count);
                }
            };

            m_AssetBundleCollection.EventOnLoadingAsset += delegate(int index, int count)
            {
                if (EventOnLoadingAsset != null)
                {
                    EventOnLoadingAsset(index, count);
                }
            };

            m_AssetBundleCollection.EventOnLoadCompleted += delegate()
            {
                if (EventOnLoadCompleted != null)
                {
                    EventOnLoadCompleted();
                }
            };

            m_SourceAssetSearchPaths         = new List <string>();
            m_SourceAssetSearchRelativePaths = new List <string>();
            m_SourceAssets                 = new Dictionary <string, SourceAsset>();
            SourceAssetRoot                = null;
            m_SourceAssetRootPath          = null;
            m_SourceAssetUnionTypeFilter   = null;
            m_SourceAssetUnionLabelFilter  = null;
            m_SourceAssetExceptTypeFilter  = null;
            m_SourceAssetExceptLabelFilter = null;
            AssetSorter = AssetSorterType.Path;

            SourceAssetRootPath = DefaultSourceAssetRootPath;
        }