Example #1
0
        public IEnumerator CreateView(IUIPanel uiPanel)
        {
            string assetPath = uiPanel.GetPanelAssetPath();

            Logger.d($"[DeftauleUISystem.Create] UI预制体加载 assetPath={assetPath}");
            var loader = Addressables.InstantiateAsync(assetPath, _uiPanelRoot, false);

            yield return(loader);

            if (loader.Status == AsyncOperationStatus.Succeeded)
            {
                UIPanelData panelData = new UIPanelData();
                _uiPanelDatas.Add(panelData);
                panelData.PanelGO = loader.Result;
                panelData.UIPanel = uiPanel;

                panelData.PanelGO.GetComponent <Canvas>().enabled           = false;
                panelData.PanelGO.GetComponent <GraphicRaycaster>().enabled = false;
                uiPanel.OnInit(loader.Result);
            }
            else
            {
                Logger.e($"[DeftauleUISystem.Create] UI预制体加载失败 assetPath={assetPath}");
            }
        }
    public void StopPanelUpdate(Object panel, bool bRebuild, int drawCallNum)
    {
        if (!((Behaviour)this).get_enabled())
        {
            return;
        }
        int instanceId = panel.GetInstanceID();

        this.m_panelSW.Stop();
        double num = (double)this.m_panelSW.ElapsedTicks / 10000.0;

        if (this.m_elapsedTicks.ContainsKey(instanceId))
        {
            UIPanelData elapsedTick = this.m_elapsedTicks[instanceId];
            elapsedTick.mElapsedTicks += num;
            ++elapsedTick.mCalls;
            elapsedTick.mRebuildCount += !bRebuild ? 0 : 1;
            elapsedTick.mDrawCallNum  += drawCallNum;
        }
        else
        {
            this.m_elapsedTicks.Add(instanceId, new UIPanelData()
            {
                mElapsedTicks = num,
                mCalls        = 1,
                mRebuildCount = !bRebuild ? 0 : 1,
                mDrawCallNum  = drawCallNum
            });
            if (UIDebugCache.s_nameLut.ContainsKey(instanceId))
            {
                return;
            }
            UIDebugCache.s_nameLut.Add(instanceId, panel.get_name());
        }
    }
Example #3
0
 internal void Enlarge(UIPanelData value)
 {
     this.mElapsedTicks += value.mElapsedTicks;
     this.mCalls        += value.mCalls;
     this.mRebuildCount += value.mRebuildCount;
     this.mDrawCallNum  += value.mDrawCallNum;
 }
Example #4
0
    public void StopStats()
    {
        if (!enabled)
        {
            return;
        }

        enabled = false;

        float seconds = Time.time - m_startTime;

        List <string> content       = new List <string>();
        int           frameRecorded = Time.frameCount - m_startFrame;

        content.Add(string.Format("name \ttotalMS \tperFrameMS \trebuildCount \tupdateCount \tdrawcallCount/updateCount \t --- {0} frames ---", frameRecorded));

        {
            List <KeyValuePair <int, UIPanelData> > panelData = m_accumulatedPanels.ToList();
            panelData.Sort(
                delegate(KeyValuePair <int, UIPanelData> pair1,
                         KeyValuePair <int, UIPanelData> pair2)
            {
                return(pair2.Value.mElapsedTicks.CompareTo(pair1.Value.mElapsedTicks));
            }
                );

            foreach (var p in panelData)
            {
                string      name = UIDebugCache.GetName(p.Key);
                UIPanelData data = p.Value;
                content.Add(string.Format("{0}\t{1:0.00}\t{2:0.00}\t{3}\t{4}\t{5}",
                                          name, data.mElapsedTicks, data.mElapsedTicks / (double)frameRecorded,
                                          (int)(data.mRebuildCount / seconds), (int)(data.mCalls / seconds), data.mDrawCallNum / data.mCalls));
            }
        }

        List <KeyValuePair <int, double> > sortBuf = m_accumulated.ToList();

        sortBuf.Sort(
            delegate(KeyValuePair <int, double> pair1,
                     KeyValuePair <int, double> pair2)
        {
            return(pair2.Value.CompareTo(pair1.Value));
        }
            );

        foreach (var p in sortBuf)
        {
            string name       = UIDebugCache.GetName(p.Key);
            string parentName = UIDebugCache.GetParentName(p.Key);
            if (!string.IsNullOrEmpty(parentName))
            {
                name = string.Format("{0}:{1}", parentName, name);
            }
            content.Add(string.Format("{0}\t{1:0.00}\t{2:0.00}", name, p.Value, p.Value / (double)frameRecorded));
        }
        string file = Path.Combine(Application.persistentDataPath, string.Format("TestTools/ui_stats_panels_{0}_{1}.log", SysUtil.FormatDateAsFileNameString(DateTime.Now), SysUtil.FormatTimeAsFileNameString(DateTime.Now)));

        System.IO.File.WriteAllLines(file, content.ToArray());
    }
Example #5
0
        public void ShowView(IUIPanel uiPanel, IPlayModule module)
        {
            UIPanelData panelData = _uiPanelDatas.Find((uiPanelDataItem) => { return(uiPanelDataItem.UIPanel == uiPanel); });

            panelData.RenderSortOrder = _uiPanelDatas.Count;
            panelData.PanelGO.GetComponent <Canvas>().sortingOrder      = panelData.RenderSortOrder;
            panelData.PanelGO.GetComponent <Canvas>().enabled           = true;
            panelData.PanelGO.GetComponent <GraphicRaycaster>().enabled = true;
            uiPanel.OnShow(module);
        }
Example #6
0
        public void HideView(IUIPanel uiPanel)
        {
            UIPanelData panelData = _uiPanelDatas.Find((uiPanelDataItem) => { return(uiPanelDataItem.UIPanel == uiPanel); });

            panelData.RenderSortOrder = -1;
            panelData.PanelGO.GetComponent <Canvas>().sortingOrder      = panelData.RenderSortOrder;
            panelData.PanelGO.GetComponent <Canvas>().enabled           = false;
            panelData.PanelGO.GetComponent <GraphicRaycaster>().enabled = false;
            uiPanel.OnHide();
        }
Example #7
0
        public void ReleaseView(IUIPanel uiPanel)
        {
            Logger.d($"[DeftauleUISystem.ReleaseView] {uiPanel.GetPanelAssetPath()}");
            UIPanelData panelData = _uiPanelDatas.Find((uiPanelDataItem) => { return(uiPanelDataItem.UIPanel == uiPanel); });

            uiPanel.OnRelease();
            GameObject.Destroy(panelData.PanelGO);
            panelData.PanelGO = null;
            panelData.UIPanel = null;
            _uiPanelDatas.Remove(panelData);
        }
    public void StopStats()
    {
        if (!((Behaviour)this).get_enabled())
        {
            return;
        }
        ((Behaviour)this).set_enabled(false);
        float         num1       = Time.get_time() - this.m_startTime;
        List <string> stringList = new List <string>();
        int           num2       = Time.get_frameCount() - this.m_startFrame;

        stringList.Add(string.Format("name \ttotalMS \tperFrameMS \trebuildCount \tupdateCount \tdrawcallCount/updateCount \t --- {0} frames ---", (object)num2));
        List <KeyValuePair <int, UIPanelData> > list1 = this.m_accumulatedPanels.ToList <KeyValuePair <int, UIPanelData> >();

        list1.Sort((Comparison <KeyValuePair <int, UIPanelData> >)((pair1, pair2) => pair2.Value.mElapsedTicks.CompareTo(pair1.Value.mElapsedTicks)));
        foreach (KeyValuePair <int, UIPanelData> keyValuePair in list1)
        {
            string      name        = UIDebugCache.GetName(keyValuePair.Key);
            UIPanelData uiPanelData = keyValuePair.Value;
            stringList.Add(string.Format("{0}\t{1:0.00}\t{2:0.00}\t{3}\t{4}\t{5}", (object)name, (object)uiPanelData.mElapsedTicks, (object)(uiPanelData.mElapsedTicks / (double)num2), (object)(int)((double)uiPanelData.mRebuildCount / (double)num1), (object)(int)((double)uiPanelData.mCalls / (double)num1), (object)(uiPanelData.mDrawCallNum / uiPanelData.mCalls)));
        }
        List <KeyValuePair <int, double> > list2 = this.m_accumulated.ToList <KeyValuePair <int, double> >();

        list2.Sort((Comparison <KeyValuePair <int, double> >)((pair1, pair2) => pair2.Value.CompareTo(pair1.Value)));
        foreach (KeyValuePair <int, double> keyValuePair in list2)
        {
            string str        = UIDebugCache.GetName(keyValuePair.Key);
            string parentName = UIDebugCache.GetParentName(keyValuePair.Key);
            if (!string.IsNullOrEmpty(parentName))
            {
                str = string.Format("{0}:{1}", (object)parentName, (object)str);
            }
            stringList.Add(string.Format("{0}\t{1:0.00}\t{2:0.00}", (object)str, (object)keyValuePair.Value, (object)(keyValuePair.Value / (double)num2)));
        }
        File.WriteAllLines(Path.Combine(Application.get_persistentDataPath(), string.Format("TestTools/ui_stats_panels_{0}_{1}.log", (object)SysUtil.FormatDateAsFileNameString(DateTime.Now), (object)SysUtil.FormatTimeAsFileNameString(DateTime.Now))), stringList.ToArray());
    }
Example #9
0
    public void StopPanelUpdate(UnityEngine.Object panel, bool bRebuild, int drawCallNum)
    {
        if (!enabled)
        {
            return;
        }

        int instID = panel.GetInstanceID();

        m_panelSW.Stop();
        double ms = (double)m_panelSW.ElapsedTicks / (double)TimeSpan.TicksPerMillisecond;

        if (m_elapsedTicks.ContainsKey(instID))
        {
            UIPanelData data = m_elapsedTicks[instID];
            data.mElapsedTicks += ms;
            ++data.mCalls;
            data.mRebuildCount += bRebuild ? 1 : 0;
            data.mDrawCallNum  += drawCallNum;
        }
        else
        {
            m_elapsedTicks.Add(instID, new UIPanelData
            {
                mElapsedTicks = ms,
                mCalls        = 1,
                mRebuildCount = bRebuild ? 1 : 0,
                mDrawCallNum  = drawCallNum
            });

            if (!UIDebugCache.s_nameLut.ContainsKey(instID))
            {
                UIDebugCache.s_nameLut.Add(instID, panel.name);
            }
        }
    }
Example #10
0
 protected override void ClearUIComponents()
 {
     mData = null;
 }