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;
}
}
UITool 2
最新推荐文章于 2024-06-27 20:38:24 发布