ドキュメント

Unity Engine

Unity Engine

GetSampleEntityId(int)

Gets the EntityId of the Unity object associated with the specified sample.
読み終わるまでの所要時間 1 分最終更新 1ヶ月前

Definition

public EntityId GetSampleEntityId(int sampleIndex)

Parameters

sampleIndex

Index of the Profiler sample.

Returns

Type

Description

EntityIdReturns the EntityId of the associated Unity object. Returns EntityId.None if no object is associated with the sample.

Remarks

Many profiler samples are associated with specific Unity objects such as GameObjects, Components, or Assets. Use GetSampleEntityId to retrieve the unique identifier for the object that was active when the sample was recorded.
To get detailed information about the object (such as its name and type), use the returned EntityId with FrameDataView.GetUnityObjectInfo.
Note: Components might not have a defined name. If FrameDataView.GetUnityObjectInfo returns an empty name, check the FrameDataView.UnityObjectInfo.relatedGameObjectEntityId field and call FrameDataView.GetUnityObjectInfo again with that EntityId to get the GameObject's name.

Examples

using UnityEditor.Profiling;using UnityEditorInternal;using UnityEngine;public class Example{ public static string GetSampleObjectName(int frameIndex, int threadIndex, int sampleIndex) { using (var frameData = ProfilerDriver.GetRawFrameDataView(frameIndex, threadIndex)) { if (!frameData.valid) return null; var entityId = frameData.GetSampleEntityId(sampleIndex); if (entityId == EntityId.None) return null; if (!frameData.GetUnityObjectInfo(entityId, out var objectInfo)) return null; // For components, try to get the GameObject name if the component name is empty if (string.IsNullOrEmpty(objectInfo.name) && objectInfo.relatedGameObjectEntityId != EntityId.None) { frameData.GetUnityObjectInfo(objectInfo.relatedGameObjectEntityId, out objectInfo); } return objectInfo.name; } }}