Version: 2021.3

HierarchyFrameDataView.GetItemColumnDataAsDouble

切换到手册
public double GetItemColumnDataAsDouble (int id, int column);

参数

id 层级视图项标识符。
column 列标识符。

返回

double 双精度值形式的对应列的值。

描述

返回与列关联的层级视图项值的双精度值表示形式。

用于获取列(如 columnStartTime,它以毫秒为单位表示样本开始时间)的高精度值。

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