id | 层级视图项标识符。 |
column | 列标识符。 |
double 双精度值形式的对应列的值。
返回与列关联的层级视图项值的双精度值表示形式。
Use to retrieve value with high precision for columns such as HierarchyFrameDataView.columnStartTime which represents sample start time in milliseconds.
using System.Collections.Generic; using UnityEditor; using UnityEditor.Profiling; using UnityEditorInternal;
class Example { static List<int> childrenIdCache = new List<int>();
static int FindChildItemByFunctionName(HierarchyFrameDataView frameData, int parentId, string functionName) { frameData.GetItemChildren(parentId, childrenIdCache); foreach (var childId in childrenIdCache) { var name = frameData.GetItemName(childId); if (name == functionName) return childId; }
return HierarchyFrameDataView.invalidSampleId; }
static double GetSampleStartTime(string sampleName) { using (var frameData = ProfilerDriver.GetHierarchyFrameDataView(ProfilerDriver.lastFrameIndex, 0, HierarchyFrameDataView.ViewModes.Default, HierarchyFrameDataView.columnDontSort, false)) { var sampleId = FindChildItemByFunctionName(frameData, frameData.GetRootItemID(), sampleName); if (HierarchyFrameDataView.invalidSampleId == sampleId) return 0;
double startTime = frameData.GetItemColumnDataAsDouble(sampleId, HierarchyFrameDataView.columnStartTime); return startTime; } } }
Additional resources: HierarchyFrameDataView.GetItemColumnData, HierarchyFrameDataView.GetItemColumnDataAsFloat.