亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何進行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

大理市| 富蕴县| 陇南市| 阿城市| 宜昌市| 宝丰县| 海兴县| 霍林郭勒市| 玛纳斯县| 江津市| 太湖县| 阿鲁科尔沁旗| 若尔盖县| 嫩江县| 轮台县| 汝城县| 吴堡县| 登封市| 石棉县| 武山县| 崇明县| 柘荣县| 金堂县| 榕江县| 黄大仙区| 介休市| 阳原县| 宣化县| 上虞市| 同江市| 沁源县| 秀山| 罗平县| 湖南省| 乐清市| 望都县| 屏山县| 宝兴县| 汪清县| 衡山县| 石河子市|