/// <summary>
        /// 获取 GPU 数据,返回根元素
        /// </summary>
        /// <param name="writer"></param>
        public static GPUElement GetGPUDetail(StreamWriter writer)
        {
            if (IsWindowEmpty())
            {
                return(null);
            }

            if (IsPropertyEmpty())
            {
                return(null);
            }

            return(GPUElement.Create(CPUOrGPUproperty));
        }
        public static GPUElement Create(UnityEditorInternal.ProfilerProperty root)
        {
            allGPUEle = new List <GPUElement>();
            if (allGPUEle == null)
            {
                return(null);
            }
            if (root == null)
            {
                return(null);
            }
            GPUElement rootEle = new GPUElement
            {
                FuncName        = root.propertyName,
                TotalGPUPercent = root.GetColumn(ProfilerColumn.TotalGPUPercent),
                SelfGPUPercent  = root.GetColumn(ProfilerColumn.SelfGPUPercent),
                DrawCalls       = root.GetColumn(ProfilerColumn.DrawCalls),
                TotalGPUTime    = root.GetColumn(ProfilerColumn.TotalGPUTime),
                SelfGPUTime     = root.GetColumn(ProfilerColumn.SelfGPUTime),
                RelatedObjName  = root.GetColumn(ProfilerColumn.ObjectName),
                Depth           = root.depth
            };

            if (allGPUEle != null)
            {
                allGPUEle.Add(rootEle);
            }

            while (root.Next(root.HasChildren))
            {
                GPUElement ele = new GPUElement
                {
                    FuncName        = root.propertyName,
                    TotalGPUPercent = root.GetColumn(ProfilerColumn.TotalGPUPercent),
                    DrawCalls       = root.GetColumn(ProfilerColumn.DrawCalls),
                    TotalGPUTime    = root.GetColumn(ProfilerColumn.TotalGPUTime),
                    RelatedObjName  = root.GetColumn(ProfilerColumn.ObjectName),
                    Depth           = root.depth
                };
                if (allGPUEle != null)
                {
                    allGPUEle.Add(ele);
                }
            }

            SetChildren();
            return(rootEle);
        }
        /// <summary>
        /// 从跟打印所有GPU数据
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="root"></param>
        public static void WriteGPU(StreamWriter writer, GPUElement root)
        {
            if (root == null)
            {
                return;
            }

            writer.WriteLine(root.ToString());
            if (root.children == null)
            {
                return;
            }

            foreach (var child in root.children)
            {
                WriteGPU(writer, child);
            }
        }