版本:Unity 6 (6000.0)
语言英语
  • C#

HierarchyFrameDataView.GetItemColumnDataAsDouble

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交,但我们确实会阅读用户提出的每一项更改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public double GetItemColumnDataAsDouble(int id, int column);

参数

id 层次结构项标识符。
column 列标识符。

返回值

double 对应列的值(双精度浮点数)。

描述

返回与列关联的层次结构项值的双精度浮点数表示形式。

用于检索具有高精度的列值,例如 HierarchyFrameDataView.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; } } }