public string GetTotalSizeString(HierarchyMode a_mode) { long size = a_mode == HierarchyMode.Flat ? m_bytes : m_totalBytesWithDeps; long totalSize = size * References; if (m_cachedTotalSizeString == null || m_cachedTotalSize != totalSize) { m_cachedTotalSize = totalSize; m_cachedTotalSizeString = IntToSizeString(totalSize); } return(m_cachedTotalSizeString); }
private void UpdateAssetsOrdered(HierarchyMode a_mainPaneMode) { switch (a_mainPaneMode) { case HierarchyMode.Flat: CalculateAssetSize(); break; case HierarchyMode.Recurse: CalculateAssetSizeRecursive(); break; } }
private void SelectedDeps() { GUILayout.BeginHorizontal(EditorStyles.toolbar); { m_assetListSearch.OnGUI(); var hierarchyMode = (HierarchyMode)EditorGUILayout.EnumPopup(m_selectedDepsMode, EditorStyles.toolbarPopup); if (hierarchyMode != m_mainPaneMode) { m_selectedDepsMode = hierarchyMode; UpdateSelectedDeps(); } } GUILayout.EndHorizontal(); if (m_selectedDepsOrdered == null || !m_selectedDepsOrdered.Any()) { GUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); return; } int totalWidth = m_upperHorizontalSplit.realSizes[2] - 36; // scrollbar width var assetWidth = totalWidth * 0.8f; var totalSizeWidth = totalWidth * 0.2f; GUILayout.BeginHorizontal(); { GUILayout.Label("Asset", m_columnHeaderStyle, GUILayout.Width(assetWidth)); GUILayout.Label("Size", m_columnHeaderStyle, GUILayout.Width(totalSizeWidth)); GUILayout.Label("", m_columnHeaderStyle); } GUILayout.EndHorizontal(); m_scrollPositionSelectedDeps = EditorGUILayout.BeginScrollView(m_scrollPositionSelectedDeps); { foreach (var asset in m_selectedDepsOrdered) { GUILayout.BeginHorizontal(); var assetPath = m_stripPath ? asset.m_strippedPath : asset.m_shortPath; GUILayout.Label(assetPath, GUILayout.Width(assetWidth)); GUILayout.Label(asset.GetSizeString(m_selectedDepsMode), GUILayout.Width(totalSizeWidth)); GUILayout.EndHorizontal(); } } EditorGUILayout.EndScrollView(); }
private void AssetListPane() { GUILayout.BeginHorizontal(EditorStyles.toolbar); { m_assetListSearch.OnGUI(); var mainPaneMode = (HierarchyMode)EditorGUILayout.EnumPopup(m_mainPaneMode, EditorStyles.toolbarPopup); if (mainPaneMode != m_mainPaneMode) { UpdateAssetsOrdered(mainPaneMode); m_mainPaneMode = mainPaneMode; } } GUILayout.EndHorizontal(); if (m_assetsOrdered == null) { return; } int totalWidth = m_upperHorizontalSplit.realSizes[1] - 40; // scrollbar width var assetWidth = totalWidth * 0.8f; var refWidth = totalWidth * 0.05f; var totalSizeWidth = totalWidth * 0.15f; GUILayout.BeginHorizontal(); { GUILayout.Label("Asset", m_columnHeaderStyle, GUILayout.Width(assetWidth)); GUILayout.Label("#", m_columnHeaderStyle, GUILayout.Width(refWidth)); GUILayout.Label("Size", m_columnHeaderStyle, GUILayout.Width(totalSizeWidth)); GUILayout.Label("", m_columnHeaderStyle); } GUILayout.EndHorizontal(); m_scrollPositionLeftPane = EditorGUILayout.BeginScrollView(m_scrollPositionLeftPane); { var count = Mathf.Min(m_assetsOrdered.Count, 100); var displayed = 0; for (var index = 0; index < m_assetsOrdered.Count && displayed < count; index++) { var asset = m_assetsOrdered[index]; if (!m_showSingles && asset.References == 1) { continue; } var assetPath = m_stripPath ? asset.m_strippedPath : asset.m_shortPath; if (!m_assetListSearch.Check(assetPath)) { continue; } displayed++; GUILayout.BeginHorizontal(); { var selected = m_selected.Contains(asset); var nowSelected = GUILayout.Toggle(selected, assetPath, GUILayout.Width(assetWidth)); GUILayout.Label(asset.ReferencesString, GUILayout.Width(refWidth)); GUILayout.Label(asset.GetTotalSizeString(m_mainPaneMode), GUILayout.Width(totalSizeWidth)); if (selected != nowSelected) { if (nowSelected) { UpdateSelected(asset, true); } else { UpdateSelected(asset, false); } } } GUILayout.EndHorizontal(); } } EditorGUILayout.EndScrollView(); }
private void OnGUI() { if (m_assets == null) { if (GUILayout.Button("Load Data")) { EditorUtility.DisplayProgressBar("Loading", "Please Wait", 0f); CalculateAssetsAndBundles(); LoadAssetSizes(); CalculateReferencedBundles(); UpdateAssetSizeRecursive(); m_mainPaneMode = HierarchyMode.Recurse; UpdateAssetsOrdered(m_mainPaneMode); CalculateBundleSize(); CalculateTotalBundleSize(); CalculateTotalAssetSize(); BuildGroupSizes(); EditorUtility.ClearProgressBar(); m_columnHeaderStyle = new GUIStyle("dockArea"); m_columnHeaderStyle.alignment = TextAnchor.MiddleLeft; m_columnHeaderStyle.padding = new RectOffset(10, 0, 0, 0); m_columnHeaderStyle.fontStyle = FontStyle.Bold; m_foldoutStyle = new GUIStyle("IN Foldout"); } } else { Toolbar(); SplitterGUILayout.BeginVerticalSplit(m_mainVerticalSplit); { SplitterGUILayout.BeginHorizontalSplit(m_upperHorizontalSplit); { EditorGUILayout.BeginVertical("box"); { GroupPane(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); { AssetListPane(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginHorizontal(); { if (!m_selected.Any()) { EditorGUILayout.BeginVertical("box"); { GUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); } EditorGUILayout.EndVertical(); } else { SplitterGUILayout.BeginVerticalSplit(m_depVerticalSplit); { EditorGUILayout.BeginVertical("box"); { ReverseDepTree(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); { SelectedDeps(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); { SelectedReferencedBundles(); } EditorGUILayout.EndVertical(); } SplitterGUILayout.EndVerticalSplit(); } } EditorGUILayout.EndHorizontal(); } SplitterGUILayout.EndHorizontalSplit(); SplitterGUILayout.BeginHorizontalSplit(m_lowerHorizontalSplit); { EditorGUILayout.BeginVertical("box"); { BundlePane(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); { AssetPane(); } EditorGUILayout.EndVertical(); } SplitterGUILayout.EndHorizontalSplit(); } SplitterGUILayout.EndVerticalSplit(); DisplayBottomBar(); } }
public string GetSizeString(HierarchyMode a_mode) { return(a_mode == HierarchyMode.Flat ? FlatSizeString : RecurseSizeString); }
private void AssetPane() { if (m_selectedAssetBundle == null) { GUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); return; } GUILayout.BeginHorizontal(EditorStyles.toolbar); { m_assetSearch.OnGUI(); var hierarchyMode = (HierarchyMode)EditorGUILayout.EnumPopup(m_assetPaneMode, EditorStyles.toolbarPopup); if (hierarchyMode != m_assetPaneMode) { m_assetPaneMode = hierarchyMode; } GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); int totalWidth = m_lowerHorizontalSplit.realSizes[1] - 54; // scrollbar width var assetWidth = totalWidth * 0.8f; var refWidth = totalWidth * 0.05f; var totalSizeWidth = totalWidth * 0.15f; GUILayout.BeginHorizontal(); { GUILayout.Label("Asset", m_columnHeaderStyle, GUILayout.Width(assetWidth)); GUILayout.Label("#", m_columnHeaderStyle, GUILayout.Width(refWidth)); GUILayout.Label("Size", m_columnHeaderStyle, GUILayout.Width(totalSizeWidth)); GUILayout.Label("", m_columnHeaderStyle); } GUILayout.EndHorizontal(); m_scrollPositionAssetPane = EditorGUILayout.BeginScrollView(m_scrollPositionAssetPane); { for (var i = 0; i < m_selectedAssetBundle.m_directAssets.Count; ++i) { var asset = m_selectedAssetBundle.m_directAssets[i]; var color = GUI.color; if (m_selectedAssetBundle.m_name.StartsWith("shared_") && asset.Parents == 0) { GUI.color = Color.yellow; } AssetPaneAsset(asset, "", assetWidth, refWidth, totalSizeWidth, 0, m_assetCollapsed, m_assetVisited); GUI.color = color; } m_assetVisited.Clear(); } EditorGUILayout.EndScrollView(); }