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); } } } }