protected void DrawAssetbundleRefrences(string assetbundleName, string key, int level = 0)
        {
            var instance            = AssetBundleManager.Instance;
            var abRefrences         = instance.GetAssetBundleRefrences(assetbundleName);
            var webRequestRefrences = instance.GetWebRequesterRefrences(assetbundleName);
            var abLoaderRefrences   = instance.GetAssetBundleLoaderRefrences(assetbundleName);
            var expanded            = false;

            expanded = GUILayoutUtils.DrawSubHeader(level + 1, "ABRefrence:", abRefrenceSate, key, abRefrences.Count.ToString());
            if (expanded && abRefrences.Count > 0)
            {
                GUILayoutUtils.DrawTextListContent(abRefrences);
            }

            expanded = GUILayoutUtils.DrawSubHeader(level + 1, "WebRequester:", webRequestRefrenceSate, key, webRequestRefrences.Count.ToString());
            if (expanded && webRequestRefrences.Count > 0)
            {
                GUILayoutUtils.DrawTextListContent(webRequestRefrences, "Sequence : ");
            }

            expanded = GUILayoutUtils.DrawSubHeader(level + 1, "ABLoader:", abLoaderfrenceSate, key, abLoaderRefrences.Count.ToString());
            if (expanded && abLoaderRefrences.Count > 0)
            {
                GUILayoutUtils.DrawTextListContent(abLoaderRefrences, "Sequence : ");
            }
        }
Exemple #2
0
        void DrawAssetDispatcherConfig()
        {
            GUILayoutUtils.BeginContents(false);

            GUILayoutUtils.DrawProperty("Path:", AssetBundleUtility.AssetsPathToPackagePath(targetAssetPath), 300f, 80f);

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("FilterType:", GUILayout.MaxWidth(80f));
            var selectType = (AssetBundleDispatcherFilterType)EditorGUILayout.EnumPopup(filterType);

            if (selectType != filterType)
            {
                filterType = selectType;
                MarkChanged();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Separator();
            var filtersCount = dispatcherConfig.CheckerFilters.Count;

            if (GUILayoutUtils.DrawSubHeader(0, "CheckerFilters:", inspectorSate, "CheckerFilters", filtersCount.ToString()))
            {
                DrawFilterTypesList(dispatcherConfig.CheckerFilters);
            }

            Color color = GUI.color;

            if (configChanged)
            {
                GUI.color = color * new Color(1, 1, 0.5f);
            }
            EditorGUILayout.Separator();
            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Apply"))
            {
                Apply();
            }
            GUI.color = new Color(1, 0.5f, 0.5f);
            if (GUILayout.Button("Remove"))
            {
                ConfirmRemove();
            }
            GUI.color = color;
            GUILayout.EndHorizontal();
            EditorGUILayout.Separator();

            GUILayoutUtils.EndContents(false);
        }
        protected void DrawAssetbundleContent(string assetbundleName, string key, int level)
        {
            var instance = AssetBundleManager.Instance;
            var expanded = false;

            GUILayoutUtils.BeginContents(false);

            var loaded = instance.GetAssetBundleCache(assetbundleName);

            EditorGUILayout.BeginHorizontal(GUILayout.MinWidth(250f));
            EditorGUILayout.LabelField("", GUILayout.MinWidth(20 * level));
            GUILayoutUtils.DrawProperty("Has Loaded:", loaded ? "true" : "false");
            EditorGUILayout.EndHorizontal();

            var referencesCount = instance.GetAssetbundleRefrenceCount(assetbundleName);

            expanded = GUILayoutUtils.DrawSubHeader(level, "References Count:", refrenceSate, key, referencesCount.ToString());
            if (expanded)
            {
                DrawAssetbundleRefrences(assetbundleName, key, level);
            }

            var dependencies      = instance.curManifest.GetAllDependencies(assetbundleName);
            var dependenciesCount = instance.GetAssetbundleDependenciesCount(assetbundleName);

            expanded = GUILayoutUtils.DrawSubHeader(level, "Dependencies Count:", dependenciesSate, key, dependenciesCount.ToString());
            if (expanded && dependenciesCount > 0)
            {
                for (int i = 0; i < dependencies.Length; i++)
                {
                    var dependence = dependencies[i];
                    if (!string.IsNullOrEmpty(dependence) && dependence != assetbundleName)
                    {
                        DrawAssetbundleItem(dependence, dependence, abItemSate, assetbundleName + dependence, level + 1);
                    }
                }
            }

            GUILayoutUtils.EndContents(false);
        }
        protected void DrawAssetbundleItem(string title, string assetbundleName, Dictionary <string, bool> states, string key, int level = 0)
        {
            var instance = AssetBundleManager.Instance;

            if (instance.IsAssetBundleLoaded(assetbundleName))
            {
                title += "[loaded]";
            }

            if (level == 0)
            {
                if (GUILayoutUtils.DrawHeader(title, states, key, false, false))
                {
                    DrawAssetbundleContent(assetbundleName, key, level);
                }
            }
            else
            {
                if (GUILayoutUtils.DrawSubHeader(level, title, states, key, ""))
                {
                    DrawAssetbundleContent(assetbundleName, key, level + 1);
                }
            }
        }