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()); } }
internal void Enlarge(UIPanelData value) { this.mElapsedTicks += value.mElapsedTicks; this.mCalls += value.mCalls; this.mRebuildCount += value.mRebuildCount; this.mDrawCallNum += value.mDrawCallNum; }
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()); }
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); }
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(); }
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()); }
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); } } }
protected override void ClearUIComponents() { mData = null; }