update diagnostic system
This commit is contained in:
@@ -27,7 +27,6 @@ namespace YooAsset.Editor
|
||||
private TableView _providerTableView;
|
||||
private TableView _dependTableView;
|
||||
|
||||
private DebugReport _debugReport;
|
||||
private List<ITableData> _sourceDatas;
|
||||
|
||||
|
||||
@@ -53,13 +52,12 @@ namespace YooAsset.Editor
|
||||
_dependTableView = _root.Q<TableView>("BottomTableView");
|
||||
CreateDependTableViewColumns();
|
||||
|
||||
#if UNITY_2020_3_OR_NEWER
|
||||
// 面板分屏
|
||||
var topGroup = _root.Q<VisualElement>("TopGroup");
|
||||
var bottomGroup = _root.Q<VisualElement>("BottomGroup");
|
||||
topGroup.style.minHeight = 100;
|
||||
bottomGroup.style.minHeight = 100f;
|
||||
PanelSplitView.SplitVerticalPanel(_root, topGroup, bottomGroup);
|
||||
#endif
|
||||
UIElementsTools.SplitVerticalPanel(_root, topGroup, bottomGroup);
|
||||
}
|
||||
private void CreateAssetTableViewColumns()
|
||||
{
|
||||
@@ -90,6 +88,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("AssetPath", "Asset Path", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -226,6 +225,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("DependBundles", "Depend Bundles", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -297,8 +297,6 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void FillViewData(DebugReport debugReport)
|
||||
{
|
||||
_debugReport = debugReport;
|
||||
|
||||
// 清空旧数据
|
||||
_providerTableView.ClearAll(false, true);
|
||||
_dependTableView.ClearAll(false, true);
|
||||
@@ -333,7 +331,6 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void ClearView()
|
||||
{
|
||||
_debugReport = null;
|
||||
_providerTableView.ClearAll(false, true);
|
||||
_dependTableView.ClearAll(false, true);
|
||||
RebuildView(null);
|
||||
|
||||
+6
-8
@@ -32,7 +32,6 @@ namespace YooAsset.Editor
|
||||
private TableView _usingTableView;
|
||||
private TableView _referenceTableView;
|
||||
|
||||
private DebugReport _debugReport;
|
||||
private List<ITableData> _sourceDatas;
|
||||
|
||||
/// <summary>
|
||||
@@ -61,14 +60,13 @@ namespace YooAsset.Editor
|
||||
_referenceTableView = _root.Q<TableView>("ReferenceTableView");
|
||||
CreateReferenceTableViewColumns();
|
||||
|
||||
#if UNITY_2020_3_OR_NEWER
|
||||
// 面板分屏
|
||||
var topGroup = _root.Q<VisualElement>("TopGroup");
|
||||
var bottomGroup = _root.Q<VisualElement>("BottomGroup");
|
||||
topGroup.style.minHeight = 100;
|
||||
bottomGroup.style.minHeight = 100f;
|
||||
PanelSplitView.SplitVerticalPanel(_root, topGroup, bottomGroup);
|
||||
PanelSplitView.SplitVerticalPanel(bottomGroup, _usingTableView, _referenceTableView);
|
||||
#endif
|
||||
UIElementsTools.SplitVerticalPanel(_root, topGroup, bottomGroup);
|
||||
UIElementsTools.SplitVerticalPanel(bottomGroup, _usingTableView, _referenceTableView);
|
||||
}
|
||||
private void CreateBundleTableViewColumns()
|
||||
{
|
||||
@@ -99,6 +97,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("BundleName", "Bundle Name", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -172,6 +171,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("UsingAssets", "Using Assets", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -287,6 +287,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("ReferenceBundle", "Reference Bundle", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -358,8 +359,6 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void FillViewData(DebugReport debugReport)
|
||||
{
|
||||
_debugReport = debugReport;
|
||||
|
||||
// 清空旧数据
|
||||
_bundleTableView.ClearAll(false, true);
|
||||
_usingTableView.ClearAll(false, true);
|
||||
@@ -392,7 +391,6 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void ClearView()
|
||||
{
|
||||
_debugReport = null;
|
||||
_bundleTableView.ClearAll(false, true);
|
||||
_bundleTableView.RebuildView();
|
||||
_usingTableView.ClearAll(false, true);
|
||||
|
||||
+241
-8
@@ -21,8 +21,10 @@ namespace YooAsset.Editor
|
||||
private TemplateContainer _root;
|
||||
|
||||
private TableView _operationTableView;
|
||||
private Toolbar _bottomToolbar;
|
||||
private TreeView _childTreeView;
|
||||
|
||||
private DebugReport _debugReport;
|
||||
private int _treeItemID = 0;
|
||||
private List<ITableData> _sourceDatas;
|
||||
|
||||
|
||||
@@ -41,18 +43,32 @@ namespace YooAsset.Editor
|
||||
|
||||
// 任务列表
|
||||
_operationTableView = _root.Q<TableView>("TopTableView");
|
||||
_operationTableView.SelectionChangedEvent = OnOperationTableViewSelectionChanged;
|
||||
CreateOperationTableViewColumns();
|
||||
|
||||
// 底部标题栏
|
||||
_bottomToolbar = _root.Q<Toolbar>("BottomToolbar");
|
||||
CreateBottomToolbarHeaders();
|
||||
|
||||
// 子列表
|
||||
_childTreeView = _root.Q<TreeView>("BottomTreeView");
|
||||
_childTreeView.makeItem = MakeTreeViewItem;
|
||||
_childTreeView.bindItem = BindTreeViewItem;
|
||||
|
||||
// 面板分屏
|
||||
var topGroup = _root.Q<VisualElement>("TopGroup");
|
||||
var bottomGroup = _root.Q<VisualElement>("BottomGroup");
|
||||
topGroup.style.minHeight = 100;
|
||||
bottomGroup.style.minHeight = 100f;
|
||||
UIElementsTools.SplitVerticalPanel(_root, topGroup, bottomGroup);
|
||||
}
|
||||
private void CreateOperationTableViewColumns()
|
||||
{
|
||||
|
||||
// PackageName
|
||||
{
|
||||
var columnStyle = new ColumnStyle(200);
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
columnStyle.Sortable = true;
|
||||
columnStyle.Counter = true;
|
||||
var column = new TableColumn("PackageName", "Package Name", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
@@ -159,7 +175,7 @@ namespace YooAsset.Editor
|
||||
columnStyle.Stretchable = false;
|
||||
columnStyle.Searchable = false;
|
||||
columnStyle.Sortable = true;
|
||||
var column = new TableColumn("LoadingTime", "Loading Time", columnStyle);
|
||||
var column = new TableColumn("ProcessTime", "Process Time", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
var label = new Label();
|
||||
@@ -202,6 +218,82 @@ namespace YooAsset.Editor
|
||||
};
|
||||
_operationTableView.AddColumn(column);
|
||||
}
|
||||
|
||||
// Desc
|
||||
{
|
||||
var columnStyle = new ColumnStyle(500, 500, 1000);
|
||||
columnStyle.Stretchable = true;
|
||||
columnStyle.Searchable = true;
|
||||
var column = new TableColumn("Desc", "Desc", columnStyle);
|
||||
column.MakeCell = () =>
|
||||
{
|
||||
var label = new Label();
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
return label;
|
||||
};
|
||||
column.BindCell = (VisualElement element, ITableData data, ITableCell cell) =>
|
||||
{
|
||||
var infoLabel = element as Label;
|
||||
infoLabel.text = (string)cell.GetDisplayObject();
|
||||
};
|
||||
_operationTableView.AddColumn(column);
|
||||
}
|
||||
}
|
||||
private void CreateBottomToolbarHeaders()
|
||||
{
|
||||
// OperationName
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "OperationName";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 315;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
|
||||
// Progress
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "Progress";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 100;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
|
||||
// BeginTime
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "BeginTime";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 100;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
|
||||
// ProcessTime
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "ProcessTime";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 100;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
|
||||
// Status
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "Status";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 100;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
|
||||
// Desc
|
||||
{
|
||||
ToolbarButton button = new ToolbarButton();
|
||||
button.text = "Desc";
|
||||
button.style.flexGrow = 0;
|
||||
button.style.width = 500;
|
||||
_bottomToolbar.Add(button);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -209,10 +301,10 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void FillViewData(DebugReport debugReport)
|
||||
{
|
||||
_debugReport = debugReport;
|
||||
|
||||
// 清空旧数据
|
||||
_operationTableView.ClearAll(false, true);
|
||||
_childTreeView.SetRootItems(new List<TreeViewItemData<DebugOperationInfo>>());
|
||||
_childTreeView.Rebuild();
|
||||
|
||||
// 填充数据源
|
||||
_sourceDatas = new List<ITableData>(1000);
|
||||
@@ -230,6 +322,7 @@ namespace YooAsset.Editor
|
||||
rowData.AddStringValueCell("BeginTime", operationInfo.BeginTime);
|
||||
rowData.AddLongValueCell("LoadingTime", operationInfo.ProcessTime);
|
||||
rowData.AddStringValueCell("Status", operationInfo.Status.ToString());
|
||||
rowData.AddStringValueCell("Desc", operationInfo.OperationDesc);
|
||||
_sourceDatas.Add(rowData);
|
||||
}
|
||||
}
|
||||
@@ -244,8 +337,9 @@ namespace YooAsset.Editor
|
||||
/// </summary>
|
||||
public void ClearView()
|
||||
{
|
||||
_debugReport = null;
|
||||
_operationTableView.ClearAll(false, true);
|
||||
_childTreeView.SetRootItems(new List<TreeViewItemData<DebugOperationInfo>>());
|
||||
_childTreeView.Rebuild();
|
||||
RebuildView(null);
|
||||
}
|
||||
|
||||
@@ -276,6 +370,145 @@ namespace YooAsset.Editor
|
||||
{
|
||||
_root.RemoveFromHierarchy();
|
||||
}
|
||||
|
||||
#region 树状列表
|
||||
private void OnOperationTableViewSelectionChanged(ITableData data)
|
||||
{
|
||||
var operationTableData = data as OperationTableData;
|
||||
DebugPackageData packageData = operationTableData.PackageData;
|
||||
DebugOperationInfo operationInfo = operationTableData.OperationInfo;
|
||||
|
||||
_treeItemID = 0;
|
||||
var rootItems = CreateTreeData(operationInfo);
|
||||
_childTreeView.SetRootItems(rootItems);
|
||||
_childTreeView.Rebuild();
|
||||
}
|
||||
private VisualElement MakeTreeViewItem()
|
||||
{
|
||||
VisualElement treeViewElement = new VisualElement();
|
||||
treeViewElement.style.flexDirection = FlexDirection.Row;
|
||||
|
||||
// OperationName
|
||||
{
|
||||
Label label = new Label();
|
||||
label.name = "OperationName";
|
||||
label.style.flexGrow = 0f;
|
||||
label.style.width = 300;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
// Progress
|
||||
{
|
||||
var label = new Label();
|
||||
label.name = "Progress";
|
||||
label.style.flexGrow = 0f;
|
||||
label.style.width = 100;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
// BeginTime
|
||||
{
|
||||
var label = new Label();
|
||||
label.name = "BeginTime";
|
||||
label.style.flexGrow = 0f;
|
||||
label.style.width = 100;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
// ProcessTime
|
||||
{
|
||||
var label = new Label();
|
||||
label.name = "ProcessTime";
|
||||
label.style.flexGrow = 0f;
|
||||
label.style.width = 100;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
// Status
|
||||
{
|
||||
var label = new Label();
|
||||
label.name = "Status";
|
||||
label.style.flexGrow = 0f;
|
||||
label.style.width = 100;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
// Desc
|
||||
{
|
||||
Label label = new Label();
|
||||
label.name = "Desc";
|
||||
label.style.flexGrow = 1f;
|
||||
label.style.width = 500;
|
||||
label.style.unityTextAlign = TextAnchor.MiddleLeft;
|
||||
treeViewElement.Add(label);
|
||||
}
|
||||
|
||||
return treeViewElement;
|
||||
}
|
||||
private void BindTreeViewItem(VisualElement element, int index)
|
||||
{
|
||||
var operationInfo = _childTreeView.GetItemDataForIndex<DebugOperationInfo>(index);
|
||||
|
||||
// OperationName
|
||||
{
|
||||
var label = element.Q<Label>("OperationName");
|
||||
label.text = operationInfo.OperationName;
|
||||
}
|
||||
|
||||
// Progress
|
||||
{
|
||||
var label = element.Q<Label>("Progress");
|
||||
label.text = operationInfo.Progress.ToString();
|
||||
}
|
||||
|
||||
// BeginTime
|
||||
{
|
||||
var label = element.Q<Label>("BeginTime");
|
||||
label.text = operationInfo.BeginTime;
|
||||
}
|
||||
|
||||
// ProcessTime
|
||||
{
|
||||
var label = element.Q<Label>("ProcessTime");
|
||||
label.text = operationInfo.ProcessTime.ToString();
|
||||
}
|
||||
|
||||
// Status
|
||||
{
|
||||
StyleColor textColor;
|
||||
if (operationInfo.Status == EOperationStatus.Failed.ToString())
|
||||
textColor = new StyleColor(Color.yellow);
|
||||
else
|
||||
textColor = new StyleColor(Color.white);
|
||||
|
||||
var label = element.Q<Label>("Status");
|
||||
label.text = operationInfo.Status;
|
||||
label.style.color = textColor;
|
||||
}
|
||||
|
||||
// Desc
|
||||
{
|
||||
var label = element.Q<Label>("Desc");
|
||||
label.text = operationInfo.OperationDesc;
|
||||
}
|
||||
}
|
||||
private List<TreeViewItemData<DebugOperationInfo>> CreateTreeData(DebugOperationInfo parentOperation)
|
||||
{
|
||||
var rootItemList = new List<TreeViewItemData<DebugOperationInfo>>();
|
||||
foreach (var childOperation in parentOperation.Childs)
|
||||
{
|
||||
var childItemList = CreateTreeData(childOperation);
|
||||
var treeItem = new TreeViewItemData<DebugOperationInfo>(_treeItemID++, childOperation, childItemList);
|
||||
rootItemList.Add(treeItem);
|
||||
}
|
||||
return rootItemList;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
#endif
|
||||
+5
-1
@@ -1,5 +1,9 @@
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
||||
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="True">
|
||||
<ui:VisualElement name="TopGroup" style="flex-grow: 1; border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-width: 1px; border-left-color: rgb(0, 0, 0); border-right-color: rgb(0, 0, 0); border-top-color: rgb(0, 0, 0); border-bottom-color: rgb(0, 0, 0); margin-left: 0; margin-right: 0; margin-top: 2px; margin-bottom: 1px; display: flex;">
|
||||
<YooAsset.Editor.TableView name="TopTableView" />
|
||||
</ui:VisualElement>
|
||||
<ui:VisualElement name="BottomGroup" style="flex-grow: 1;">
|
||||
<uie:Toolbar name="BottomToolbar" />
|
||||
<ui:TreeView name="BottomTreeView" />
|
||||
</ui:VisualElement>
|
||||
</ui:UXML>
|
||||
|
||||
Reference in New Issue
Block a user