91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行NGUI戰斗飄字及界面優化

發布時間:2022-01-14 09:07:30 來源:億速云 閱讀:223 作者:柒染 欄目:大數據

本篇文章為大家展示了如何進行NGUI戰斗飄字及界面優化,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1. 飄字問題:飄字會有Alpha的漸變,當漸變到0的時候,會觸發UIPanel的Rebuild

解決問題:查找哪些地方觸發了Rebuild,在UIPanel中添加日志代碼,查找出對應的UI控件,將Animation中的Alpha的最小值修改為大于0.001,并將label的位置設置到無窮遠處,同時不要做顯隱操作

public UIDrawCall FindDrawCall (UIWidget w)
	{
		Material mat = w.material;
		Texture tex = w.mainTexture;
		int depth = w.depth;
 
		for (int i = 0; i < drawCalls.Count; ++i)
		{
			UIDrawCall dc = drawCalls[i];
			int dcStart = (i == 0) ? int.MinValue : drawCalls[i - 1].depthEnd + 1;
			int dcEnd = (i + 1 == drawCalls.Count) ? int.MaxValue : drawCalls[i + 1].depthStart - 1;
 
			if (dcStart <= depth && dcEnd >= depth)
			{
				if (dc.baseMaterial == mat && dc.mainTexture == tex)
				{
					if (w.isVisible)
					{
						w.drawCall = dc;
						if (w.hasVertices) dc.isDirty = true;
						return dc;
					}
				}
				else mRebuild = true;
                if (mRebuild)
                {
                    DebugShow(w);
                }
                
				return null;
			}
		}
        DebugShow(w);
		mRebuild = true;
		return null;
	}
 
    private void DebugShow(UIWidget w)
    {
        string path = "";
        Transform t = w.transform;
        while(null != t)
        {
            path += t.transform.name + "/";
            t = t.parent;
        }
 
        Debug.LogWarning("<color=white>" + path + "time:" + Time.time+ "</color>");
    }

查找出對應的UI控件,將Animation中的Alpha的最小值修改為大于0.001(UIWidget),及TweenAlpha動畫中做同樣的修改

	/// <summary>
	/// Update the widget's visibility and final alpha.
	/// </summary>
 
	public override void Invalidate (bool includeChildren)
	{
		mChanged = true;
		mAlphaFrameID = -1;
 
		if (panel != null)
		{
			bool vis = (hideIfOffScreen || panel.hasCumulativeClipping) ? panel.IsVisible(this) : true;
			<span >UpdateVisibility(CalculateCumulativeAlpha(Time.frameCount) > 0.001f</span>, vis);
			UpdateFinalAlpha(Time.frameCount);
			if (includeChildren) base.Invalidate(true);
		}
	}

2.  戰斗界面 由技能倒計時、連擊數等組成

1). 修改倒計時結束時候的label不隱藏,改為設置為空,設置的string 方法使用U3d內存優化UILabel使用String的問題 。

2). 對經常刷新的區域單獨加UIPanel

3). 盡量減少對界面元素的顯隱操作,以減少UIpanel的Rebuild過程,從而減少DrawCall

經測試 UIPanel的 Rebuild大量減少,尤其是飄字的。

上述內容就是如何進行NGUI戰斗飄字及界面優化,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宿松县| 辽阳市| 河北区| 凤庆县| 石景山区| 共和县| 北辰区| 揭阳市| 宜兰县| 栾城县| 出国| 祥云县| 修武县| 庄河市| 建阳市| 台北县| 蛟河市| 香河县| 广饶县| 巩义市| 德安县| 湘阴县| 兴义市| 普兰县| 六枝特区| 迁西县| 平乐县| 老河口市| 砚山县| 静宁县| 英吉沙县| 祥云县| 临朐县| 普宁市| 大港区| 大新县| 吉水县| 榆社县| 宜都市| 鄯善县| 高清|