Beispiel #1
0
        private void DrawAssetBundleFolder(AssetBundleFolder assetBundleFolder)
        {
            bool expand = IsExpandedAssetBundleFolder(assetBundleFolder);

            EditorGUILayout.BeginHorizontal();
            {
                if (expand != EditorGUI.Foldout(new Rect(18f + 14f * assetBundleFolder.Depth, 20f * m_CurrentAssetBundleRowOnDraw + 2f, int.MaxValue, 14f), expand, string.Empty, true))
                {
                    expand = !expand;
                    SetExpandedAssetBundleFolder(assetBundleFolder, expand);
                }

                GUI.DrawTexture(new Rect(32f + 14f * assetBundleFolder.Depth, 20f * m_CurrentAssetBundleRowOnDraw + 1f, 16f, 16f), AssetBundleFolder.Icon);
                EditorGUILayout.LabelField(string.Empty, GUILayout.Width(40f + 14f * assetBundleFolder.Depth), GUILayout.Height(18f));
                EditorGUILayout.LabelField(assetBundleFolder.Name);
            }
            EditorGUILayout.EndHorizontal();

            m_CurrentAssetBundleRowOnDraw++;

            if (expand)
            {
                foreach (AssetBundleFolder subAssetBundleFolder in assetBundleFolder.GetFolders())
                {
                    DrawAssetBundleFolder(subAssetBundleFolder);
                }

                foreach (AssetBundleItem assetBundleItem in assetBundleFolder.GetItems())
                {
                    DrawAssetBundleItem(assetBundleItem);
                }
            }
        }
        /// <summary>
        /// 收集资源组
        /// </summary>
        private void _collectGroup(AssetBundleFolder assetBundleFolder)
        {
            foreach (AssetBundleFolder subAssetBundleFolder in assetBundleFolder.GetFolders())
            {
                _collectGroup(subAssetBundleFolder);
            }

            foreach (AssetBundleItem assetBundleItem in assetBundleFolder.GetItems())
            {
                var group = assetBundleItem.AssetBundle.GetResourceGroups();

                foreach (var resourceGroup in group)
                {
                    if (!_groups.Contains(resourceGroup))
                    {
                        _groups.Add(resourceGroup);
                    }
                }
            }
        }