public void UpdateProperties() { int firstFrameIndex = ProfilerDriver.firstFrameIndex; if (firstFrameIndex == -1) { return; } int lastFrameIndex = ProfilerDriver.lastFrameIndex; for (int frame = firstFrameIndex; frame <= lastFrameIndex; frame++)//每一帧 { //获得各种内存的信息 string MemoryAllInfo = ProfilerDriver.GetOverviewText(ProfilerArea.Memory, frame); float frameMonoValue = StringFormat.GetMonoMemory(MemoryAllInfo); monoProperty.UpdateValueEveryFrame(frame, frameMonoValue); float frameTextureValue = StringFormat.GetTextureMemory(MemoryAllInfo); textureProperty.UpdateValueEveryFrame(frame, frameTextureValue); float frameAnimationValue = StringFormat.GetAnimationMemory(MemoryAllInfo); animationProperty.UpdateValueEveryFrame(frame, frameAnimationValue); float frameAudioValue = StringFormat.GetAudioMemory(MemoryAllInfo); audioProperty.UpdateValueEveryFrame(frame, frameAudioValue); float frameMeshValue = StringFormat.GetMeshMemory(MemoryAllInfo); meshProperty.UpdateValueEveryFrame(frame, frameMeshValue); float frameGameObjectValue = StringFormat.GameObjectCount(MemoryAllInfo); gameobjectProperty.UpdateValueEveryFrame(frame, frameGameObjectValue); //获得渲染相关的信息 string RenderAllInfo = ProfilerDriver.GetOverviewText(ProfilerArea.Rendering, frame); float frameDrawCallValue = StringFormat.GetDrawCalls(RenderAllInfo); drawCallProperty.UpdateValueEveryFrame(frame, frameDrawCallValue); float frameTrisValue = StringFormat.GetTrisCount(RenderAllInfo); trisProperty.UpdateValueEveryFrame(frame, frameTrisValue); //获得FPS profilerProperty.SetRoot(frame, ProfilerColumn.TotalTime, ProfilerViewType.Hierarchy); string frameFpsValue = profilerProperty.frameFPS; fpsProperty.UpdateValueEveryFrame(frame, float.Parse(frameFpsValue)); profilerProperty.Cleanup(); //获得CPU耗时相关的信息 string CpuAllInfo = ProfilerDriver.GetOverviewText(ProfilerArea.CPU, frame); float renderingTime = StringFormat.GetCpuRenderingTime(CpuAllInfo); renderingTimeProperty.UpdateValueEveryFrame(frame, renderingTime); float animationTime = StringFormat.GetCpuAnimationTime(CpuAllInfo); animationTimeProperty.UpdateValueEveryFrame(frame, animationTime); float scriptsTime = StringFormat.GetCpuScriptsTime(CpuAllInfo); scriptsTimeProperty.UpdateValueEveryFrame(frame, scriptsTime); float uiTime = StringFormat.GetCpuUiTime(CpuAllInfo); uiTimeProperty.UpdateValueEveryFrame(frame, uiTime); } Debug.Log("first:" + firstFrameIndex + "," + "last:" + lastFrameIndex + ",Diff:" + (lastFrameIndex - firstFrameIndex)); }