UITool 2

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using CommonDelegate;

public class UITools {

	public static void PlayAnimtionWithCallBack(Animator animator,string actionName,VoidDelegate func)
	{
		if(animator == null)
			return;
		AnimatorCallBack script = animator.GetComponent<AnimatorCallBack>();
		if(script == null)
			script = animator.gameObject.AddComponent<AnimatorCallBack>();
		script.SetFunc(actionName,func);
	}


	public static bool AnimationHasAni(Animator anim, string clipName)
	{
		if (anim != null)
		{
			RuntimeAnimatorController ac = anim.runtimeAnimatorController;
			if (ac.animationClips.Length > 0)
			{
				foreach (AnimationClip ani in ac.animationClips)
				{
					if (ani.name == clipName)
					{
						return true;
					}
				}
			}
		}
		return false;
	}  
	public static float GetAnimatorTime(Animator ani)
	{
		if (ani == null)
			return 2.0f;
		
		AnimatorStateInfo info = ani.GetCurrentAnimatorStateInfo(0);
		return info.length;
	}

	public static void SetLabText(GameObject go, string text ,bool bold = false)
	{
		if(go != null)
		{
			UILabel label = go.GetComponent<UILabel>();
			SetLabText(label,text,bold);
		}
	}

	public static void SetLabText(TextMesh mesh,string text)
	{
		if(mesh != null)
		{
			mesh.text = StringManager.GetInstance().GetValueEx(text);
		}
	}

	public static void SetLabText(UILabel label,int need,int have,bool isDouble = true,bool bold = false)
	{
		string result = "";
		if (isDouble == true)
		{
			if (need <= have)// 足够
				result = string.Format("{0}/{1}",have,need);
			else
				result = string.Format("[FF0000]{0}[-]/{1}",have,need);
		}
		else
		{
			if (need <= have)// 足够
				result = string.Format("{0}",need);
			else
				result = string.Format("[FF0000]{0}[-]",need);
		}
		
		SetLabText(label,result,bold);
	}


	public static void SetLabLevelText(UILabel lab,int level,bool bold = false)
	{
		SetLabText(lab,"Lv." + level,bold);
	}

	public static void SetLabLevelText(UILabel lab,string level,bool bold = false)
	{
		SetLabText(lab,"Lv." + level,bold);
	}

	public static void SetLabPlusText(UILabel lab,int plus_num,bool bold = false)
	{
		SetLabText(lab,"+" + plus_num,bold);
	}

	public static void SetLabText(UILabel lab, string text,bool bold = false)
	{
		if(lab != null)
		{
			if(bold)
				text =string.Format("[b]{0}[-]",text);
			lab.text = text;
			lab.UpdateAnchors();
		}
	}

	public static void SetLabText(UILabel lab, int text,bool bold = false)
	{
		if(lab != null)
		{
			if(bold)
			{
				lab.text = "[b]" + text.ToString();
			}
			else
			{
				lab.text = text.ToString();
			}
			lab.UpdateAnchors();
		}
	}

	public static string GetLabText(UILabel lab)
	{
		if(lab != null)
		{
			return lab.text;
		}

		return "";
	}

	public static void SetSpriteWidth(UISprite sprite, int width)
	{
		if(sprite != null)
		{
			sprite.width = width;
		}
	}

	public static void ClearTexture(UITexture texture)
	{
		if (texture != null)
			texture.mainTexture = null;
	}

	public static void ClearSprite(UISprite sprite)
	{
		if (sprite != null)
			sprite.atlas = null;
	}

	public static void ClearInput(UIInput input)
	{
		if(input != null)
		{
			input.value = string.Empty;
		}
	}

	public static void ClearRichLabel(UIRichLabel label)
	{
		if(label != null)
		{
			label.text = string.Empty;
		}
	}

	public static void SetRichLab(UIRichLabel label, string text)
	{
		if (label != null)
		{
			label.text = text;
		}
	}

	public static void ClearLabel(UILabel label)
	{
		if(label != null)
		{
			label.text = string.Empty;
		}
	}

	public static void AddOnclick(GameObject go, UIEventListener.VoidDelegate cb)
	{
		if (go == null)
		{
			return;
		}
		UIEventListener listener = UIEventListener.Get(go);
		if (listener != null)
		{
			listener.onClick = cb;
		}
	}

	public static void AddOnclick(UITab tab,CommonDelegate.VoidDelegate ev)
	{
		if(tab != null)
			tab.OnClickHandler = ev;
	}

	public static void AddOnclick(UIEventListener listener, UIEventListener.VoidDelegate cb)
	{
		if(listener != null)
		{
			listener.onClick = cb;
		}
	}

	public static void AddOnclick(UIEventListener listener,EventDelegate.Callback ev)
	{
		if(listener != null)
		{
			listener.onClick = null;
			listener.onClick = delegate(GameObject go) {
				ev();
			};
		}
	}

	public static void AddOnclick(UIButton btn, EventDelegate.Callback ev)
	{
		if(btn != null)
		{
			btn.onClick.Clear();
			EventDelegate.Add(btn.onClick, ev);
		}
	}

	public static void AddOnclick(UIToggle toggle, EventDelegate.Callback cb)
	{
		if(toggle != null)
		{
			toggle.onChange.Clear();
			EventDelegate.Add(toggle.onChange, cb);
		}
	}

	public static void AddTabExOnClick(UITabEx tab,VoidDelegate del)
	{
		if(tab!=null)
		{
			tab.OnClickHandler = del;
		}
	}

	public static void GridReposition(UIGrid grid)
	{
		if(grid != null)
		{
			grid.Reposition();
		}
	}

	public static void GridReposition(GameObject go)
	{
		if(go == null)
		{
			return;
		}
		GridReposition(go.GetComponent<UIGrid>());
	}

	public static void ScrollResetPosition(UIScrollView scroll)
	{
		if(scroll != null)
		{
			scroll.ResetPosition();
		}
	}

	public static void ClearListView(UIListView listView)
	{
		if (listView != null)
		{
			listView.Clear();
		}
	}

	public static void AddListViewItem<T>(UIListView listView, int count) where T : UIListItem
	{
		if (listView != null)
		{
			listView.AddItem<T>(count);
		}
	}

	public static void AutoAddListViewItem<T>(UIListView listView, int allNum) where T : UIListItem
	{
		if(listView == null)
			return;
		int curNum = listView.GetCount();
		if(allNum > curNum)
		{
			listView.AddItem<T>(allNum - curNum);
		}
		else if(allNum < curNum)
		{
			listView.Clear();
			listView.AddItem<T>(allNum);
		}

		//Froce fresh
		for(int i = 0 ; i < allNum ; i++)
		{
			listView.ChangeItem(i);
		}
	}
	
	//public static void ScrollResetPosition(GameObject go)
	//{
	//	if(go == null)
	//	{
	//		return;
	//	}
	//	ScrollResetPosition(go.GetComponent<UIScrollView>());
	//}

	public static void setAlpha(UIWidget widget, float fAlpha)
	{
		if (widget != null)
			widget.alpha = fAlpha;
	}

	public static void setAlpha(UIPanel uipanle, float fAlpha)
	{
		if (uipanle != null)
			uipanle.alpha = fAlpha;
	}

	public static void setActive(GameObject go, bool active = true)
	{
		if(go != null && go.activeSelf != active)
		{
			go.SetActive(active);
		}
	}

	public static void setActive(UIWidget widget, bool active = true)
	{
		if(widget != null && widget.gameObject.activeSelf != active)
		{
			widget.gameObject.SetActive(active);
		}
	}

    public static void setActive(Transform trans, bool active = true)
    {
        if (trans != null && trans.gameObject.activeSelf != active)
        {
            trans.gameObject.SetActive(active);
        }
    }

	public static void setActive(MonoBehaviour monobehavior, bool active = true)
	{
		if(monobehavior != null && monobehavior.gameObject.activeSelf != active)
		{
			monobehavior.gameObject.SetActive(active);
		}
	}

	public static void setActive(ParticleSystem ps , bool active = true)
	{
		if(ps != null && ps.gameObject.activeSelf != active)
		{
			ps.gameObject.SetActive(active);
		}
	}

//	public static void setActive(UIScrollView view , bool active = true)
//	{
//		if(view != null && view.gameObject.activeSelf != active)
//		{
//			view.gameObject.SetActive(active);
//		}
//	}

	public static void setAlpha(UISprite sprite, float alpha)
	{
		if(sprite != null)
		{
			sprite.alpha = alpha;
		}
	}

	public static void setAlpha(UITexture texture, float alpha)
	{
		if(texture != null)
		{
			texture.alpha = alpha;
		}
	}

	public static string getInputText(UIInput input)
	{
		if(input != null)
		{
			return input.value;
		}

		return string.Empty;
	}

	public static void SetInputText(UIInput input, string str)
	{
		if(input != null)
		{
			input.value = str;
		}
	}

	public static void setButtonState(UIButton btn, UIButtonColor.State state, bool immediate)
	{
		if(btn != null)
		{
			btn.SetState(state, immediate);
			if(state == UIButtonColor.State.Disabled)
			{
				btn.isEnabled = false;
			}
			else
			{
				btn.isEnabled = true;
			}
		}
	}

    public static void setTextureColor(UITexture texture, Color color)
    {
        if (texture != null)
            texture.color = color;
    }
	public static void setTextureType(UITexture texture, UIBasicSprite.Type T)
	{
		if (texture == null)
			return;
		texture.type = T;
	}
	public static void setTextureWidthAngHeight(UITexture texture, int w,int h)
	{
		setTextureWidth(texture,w);
		setTextureHeight(texture,h);
	}
	public static void setTextureWidth(UITexture texture, int w)
	{
		if (texture == null)
			return;
		texture.width = w;
	}
	public static void setTextureHeight(UITexture texture, int h)
	{
		if (texture == null)
			return;
		texture.height = h;
	}
	public static void setTextureAdcancedValue(UITexture texture,Vector4 vec )
	{
		if (texture == null)
			return;
		if (texture.type != UIBasicSprite.Type.Advanced)
			texture.type = UIBasicSprite.Type.Advanced;
		texture.border = vec;
		texture.leftType = UIBasicSprite.AdvancedType.Invisible;
		texture.rightType = UIBasicSprite.AdvancedType.Invisible;
		texture.topType = UIBasicSprite.AdvancedType.Invisible;
		texture.bottomType = UIBasicSprite.AdvancedType.Invisible;
		texture.centerType = UIBasicSprite.AdvancedType.Sliced;
	}

	public static void setSpriteColor(UISprite sprite, Color color)
	{
		if(sprite != null)
		{
			sprite.color = color;
		}
	}

	public static void setLabColor(UILabel lab, Color color)
	{
		if(lab != null)
		{
			lab.color = color;
		}
	}

	public static void SetColor(GameObject obj, Color color)
	{
		if(obj == null)
			return;
		UISprite sprite = obj.GetComponent<UISprite>();
		if(sprite != null)
		{
			sprite.color = color;
			return;
		}

		UITexture texture = obj.GetComponent<UITexture>();
		if(texture != null)
		{
			texture.color = color;
			return;
		}

		UILabel label = obj.GetComponent<UILabel>();
		if(label != null)
		{
			label.color = color;
			return;
		}
	}

	public static void setSpriteEnable(UISprite sp, bool enable = true)
	{
		if(sp != null)
		{
			sp.enabled = enable;
		}
	}

	public static void SetToggle(UIToggle toggle, bool value)
	{
		if(toggle != null)
		{
			toggle.value = value;
		}
	}

	public static void PlayPartical(ParticleSystem ps, bool play = true)
	{
		if(ps != null)
		{
			if(play)
			{
				ps.Stop();
				ps.Play();
			}
			else
			{
				ps.Stop();
			}
		}
	}

	public static void SetProgressBar(UIProgressBar bar, float value)
	{
		if(bar != null)
		{
			bar.value = value;
		}
	}

	public static void SetProgressBar(UIProgressBar bar, int curNum , int allNum)
	{
		float value = 0.0f;
		if(allNum != 0)
		{
			value = (float)((float)curNum / (float)allNum);
		}
		if(bar != null)
		{
			bar.value = value;
		}
	}

	public static bool IsActive(GameObject go)
	{
		if(go == null)
		{
			return false;
		}

		if(go.activeSelf == false || go.activeInHierarchy == false)
		{
			return false;
		}

		return true;
	}

	public static void DisableButton(UIButton btn)
	{
		if (btn == null)
		{
			return;
		}
		btn.enabled = false;
		if (btn is UIButtonEx)
		{
			UIButtonEx btnEx = btn as UIButtonEx;
			NGUIAtlasManager.GetInstance().AttachExtend(btnEx.SpriteCT, btnEx.mContentNormal, "_grey");
			NGUIAtlasManager.GetInstance().AttachExtend(btnEx.SpriteBG, btnEx.normalSprite, "_grey");
			btnEx.SetState(UIButtonColor.State.Disabled, true);
		}
		else
		{
			NGUIAtlasManager.GetInstance().AttachExtend(btn.SpriteBG, btn.normalSprite, "_grey");
			btn.SetState(UIButtonColor.State.Disabled, true);
		}
	}

	public static void EnableButton(UIButton btn)
	{
		if (btn == null)
		{
			return;
		}
		btn.enabled = true;
		if (btn is UIButtonEx)
		{
			UIButtonEx btnEx = btn as UIButtonEx;
			NGUIAtlasManager.GetInstance().Attach(btnEx.SpriteCT, btnEx.mContentNormal);
			NGUIAtlasManager.GetInstance().Attach(btnEx.SpriteBG, btnEx.normalSprite);
			btnEx.SetState(UIButtonColor.State.Normal, true);
		}
		else
		{
			NGUIAtlasManager.GetInstance().Attach(btn.SpriteBG, btn.normalSprite);
			btn.SetState(UIButtonColor.State.Normal, true);
		}
	}

	public static GameObject GetOneCached(List<GameObject> cachedItems, GameObject parent, GameObject item)
	{
		if (cachedItems == null)
		{
			cachedItems = new List<GameObject>();
		}
		for (int i = 0; i < cachedItems.Count; i++)
		{
			if (cachedItems[i].activeSelf == false)
			{
				cachedItems[i].SetActive(true);
				return cachedItems[i];
			}
		}
		
		if (parent != null && item != null)
		{
			GameObject go = NGUITools.AddChild(parent, item);
			go.SetActive(true);
			cachedItems.Add(go);
			return go;
		}
		return null;
	}

	public static void SetCachedItemHide(List<GameObject> cachedItems)
	{
		if(cachedItems == null)
		{
			return;
		}

		for (int i = 0; i < cachedItems.Count; i++) {
			if(cachedItems[i] != null)
			{
				cachedItems[i].SetActive(false);
			}
		}
	}

	public static UIItemIcon GetOneCached(List<UIItemIcon> cachedItems, GameObject parent)
	{
		if (cachedItems == null)
		{
			cachedItems = new List<UIItemIcon>();
		}
		for (int i = 0; i < cachedItems.Count; i++)
		{
			if (cachedItems[i].gameObject.activeSelf == false)
			{
				cachedItems[i].gameObject.SetActive(true);
				if(cachedItems[i].transform.parent != parent.transform)
				{
					cachedItems[i].transform.parent = parent.transform;
				}
				return cachedItems[i];
			}
		}
		
		if (parent != null)
		{
			UIItemIcon icon = UITemplate.addItem(parent);
			cachedItems.Add(icon);
			return icon;
		}
		return null;
	}

	public static void SetCachedItemHide(List<UIItemIcon> cachedItems)
	{
		if(cachedItems == null)
		{
			return;
		}
		
		for (int i = 0; i < cachedItems.Count; i++) {
			if(cachedItems[i] != null)
			{
				cachedItems[i].gameObject.SetActive(false);
			}
		}
	}

	public static void SetCachedItemHide(List<UILabel> cachedItems)
	{
		if(cachedItems == null)
		{
			return;
		}
		
		for (int i = 0; i < cachedItems.Count; i++) {
			if(cachedItems[i] != null)
			{
				cachedItems[i].gameObject.SetActive(false);
			}
		}
	}

	public static UILabel GetOneCached(List<UILabel> cachedItems, GameObject parent, GameObject item)
	{
		if (cachedItems == null)
		{
			cachedItems = new List<UILabel>();
		}
		for (int i = 0; i < cachedItems.Count; i++)
		{
			if (cachedItems[i].gameObject.activeSelf == false)
			{
				cachedItems[i].gameObject.SetActive(true);
				return cachedItems[i];
			}
		}
		
		if (parent != null && item != null)
		{
			GameObject go = NGUITools.AddChild(parent, item);
			go.SetActive(true);
			cachedItems.Add(go.GetComponent<UILabel>());
			return go.GetComponent<UILabel>();
		}
		return null;
	}
	public static void  SortItems(List<GameObject> items,int padding = 100,float x = 0.0f)
	{
		for (int k = 0; k < items.Count; k++)
		{
			GameObject item = items[k].gameObject;
			float _y = 0 - padding * k;
			item.transform.localPosition = new Vector3(x, _y, item.transform.localPosition.z);
		}
	}

	public static void SetEffectScale(GameObject obj, float scale)
	{
		if (obj == null)
			return;
		ParticleScaler script = obj.GetComponent<ParticleScaler>();
		if (script == null)
		{
			script = obj.AddComponent<ParticleScaler>();
		}
		
		if (script != null)
		{
			script.SetScale(scale);
		}
	}
	
	public static void SetEffectScale(Transform trans, float scale)
	{
		if (trans == null)
			return;
		SetEffectScale(trans.gameObject, scale);
	}
	/// <summary>
	/// 排序Items
	/// </summary>
	/// <param name="items">排序的数组items</param>
	/// <param name="dic">间距</param>
	/// <param name="x">初始posX</param>
	/// <param name="y">初始posY</param>
	/// <param name="isv">true 竖排  false 横排</param>
	public static void OnSortItems(List<GameObject> items,int dic,int x = 0,int y =0, bool isv = true)
	{
		if (items == null || items.Count == 0)
			return ;
		int allheight = 0;
		for (int i = 0;i < items.Count;i ++)
		{
			GameObject go = items[i];
			if (go.gameObject.activeInHierarchy == false)
				continue;
			UIItemSize com = go.GetComponent<UIItemSize>();
			if (com == null)
				continue;
			if (isv == true)
			{
				int h = com.height;
				go.gameObject.transform.localPosition = new Vector3 (x,y-allheight,0);
				allheight = allheight + h + dic;
			}
			else
			{
				int w = com.width;
				go.gameObject.transform.localPosition = new Vector3 (x+allheight,y,0);
				allheight = allheight + w + dic;
			}
		}
	}

	public static void OnSetScrollView(List<GameObject> items,int linencount,UIGrid grid,UIScrollView scrollview,Vector3 center,Vector3 left)
	{
		if (grid == null || scrollview == null)
			return;

		int itemCount = 0;
		if (items != null && items.Count > 0)
		{
			for (int j = 0;j < items.Count;j ++)
			{
				GameObject go = items[j];
				if (go == null || go.activeInHierarchy == false)
					continue;
				itemCount ++;
			}
		}
		if (itemCount <= linencount)
		{
			grid.pivot = UIWidget.Pivot.Center;
			grid.transform.localPosition = center;
			scrollview.contentPivot = UIWidget.Pivot.Center;
		}
		else
		{
			grid.pivot = UIWidget.Pivot.TopLeft;
			grid.transform.localPosition = left;
			scrollview.contentPivot = UIWidget.Pivot.TopLeft;
		}
	}
	public static void MakePixelPerfect(UISprite sprite)
	{
		if (sprite == null)
			return;
		sprite.MakePixelPerfect();
	}
	public static void MakePixelPerfect(UITexture texture)
	{
		if (texture == null)
			return;
		texture.MakePixelPerfect();
	}
	public static void SetTransformScale(UISprite sprite,Vector3 v)
	{
		if (sprite == null)
			return;
		sprite.transform.localScale = v;
	}
	public static void SetTransformScale(UITexture texture,Vector3 v)
	{
		if (texture == null)
			return;
		texture.transform.localScale = v;
	}
	public static void SetTransformScale(Transform transform,Vector3 v)
	{
		if (transform == null)
			return;
		transform.transform.localScale = v;
	}
	public static void SetTransformPosition( MonoBehaviour monobehavior,Vector3 v)
	{
		if (monobehavior == null)
			return;
		monobehavior.transform.localPosition = v;
	}
	public static void SetTransformPosition( Transform monobehavior,Vector3 v)
	{
		if (monobehavior == null)
			return;
		monobehavior.transform.localPosition = v;
	}
	public static Vector3 GetTransformPosition(MonoBehaviour monobehavior)
	{
		if (monobehavior == null)
			return new Vector3 ();
		return  monobehavior.transform.localPosition;
	}
	public static Vector3 GetTransformPosition(Transform monobehavior)
	{
		if (monobehavior == null)
			return new Vector3 ();
		return  monobehavior.transform.localPosition;
	}
	public static int GetHeightByLab(UILabel lab)
	{
		if (lab == null)
			return 0;
		int labheight = (int)lab.printedSize.y;// 内容高
		return labheight;
	}
	public static int GetWidthByLab(UILabel lab)
	{
		if (lab == null)
			return 0;
		int labw = (int)lab.printedSize.x;// 内容宽
		return labw;
	}
	public static void OnDestroyObj(GameObject go)
	{
		if (go == null)
			return;
		NGUITools.Destroy(go);
	}

	public static void SetSlider(UISlider slider,float v)
	{
		if (slider == null)
			return;
		slider.value = v;
	}
	public static float GetSlider(UISlider slider)
	{
		if (slider == null)
			return 0;
		return  slider.value;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值