예제 #1
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);
        }