using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.IO;
using Afuse.Data;
using Afuse.Foundation.Util;
using Afuse.Core.UnityHelper;
/// <summary>
/// 一些常用UI操作 比如下头像什么的。 自己写的
/// </summary>
public class UITools : MonoBehaviour
{
public static void AddInputErrorTips(GameObject g)
{
UIEventListener.Get(g).onHover += ErrorTip_Hover;
}
static void ErrorTip_Hover(GameObject g, bool b)
{
if (g)
{
string str = "";
if (g.GetComponent<UIInput>() && !string.IsNullOrEmpty(g.GetComponent<LocalWidget_Error>().ErrorTipName))
{
str = TipsContent.Instance.GetTipValue(g.GetComponent<LocalWidget_Error>().ErrorTipName);
}
if (b)
{
LocalTooltipError.instance.ShowText(str, g);
}
else
{
LocalTooltipError.instance.ShowText("", g);
}
}
}
#region 常用小工具
public static void UpdateWidgetCollider(GameObject go)
{
if (!go.GetComponent<BoxCollider>())
{
NGUITools.AddWidgetCollider(go);
}
NGUITools.UpdateWidgetCollider(go);
}
public static int ChildNum(Transform t)
{
int num = 0;
for (int i = 0; i < t.childCount; i++)
{
if (t.GetChild(i).gameObject.activeInHierarchy)
{
num++;
}
}
return num;
}
public static void Float_Int(Transform item)
{
item.transform.localPosition = new Vector3((int)item.transform.localPosition.x, (int)item.transform.localPosition.y, (int)item.transform.localPosition.z);
}
/// <summary>
/// 中间字符开始判断stringA 前面有stringB 后面有stringC
/// </summary>
/// <param name="str"></param>
/// <param name="stringA"></param>
/// <param name="stringB"></param>
/// <param name="stringC"></param>
/// <returns></returns>
public static string StringRemove(string str, string stringA, string stringB, string stringC)
{
//Debug.Log(str.IndexOf(stringA));
if (str.Contains(stringA))
{
// Debug.Log(str.Substring(0, str.IndexOf(stringA)).Contains(stringB));
if (str.Substring(0, str.IndexOf(stringA)).Contains(stringB))
{
//Debug.Log(str.Substring(str.IndexOf(stringA)).Contains(stringC));
if (str.Substring(str.IndexOf(stringA) + stringA.Length).Contains(stringC))
{
//Debug.Log(str.IndexOf(stringB));
int b = str.Substring(0, str.IndexOf(stringA)).LastIndexOf(stringB);
int c = str.IndexOf(stringA) + stringA.Length + str.Substring(str.IndexOf(stringA) + stringA.Length).IndexOf(stringC);
//Debug.Log(b);
// Debug.Log(c);
return str.Remove(b, (c - b) + stringC.Length);
}
}
}
return str;
}
#region 遍历获取对象所有子对象<ComponentName>的list
private static List<Transform> trans = new List<Transform>();
private static void GetObject(Transform tran, string componentName)
{
if (tran.GetComponent(componentName))
{
trans.Add(tran);
}
if (tran.childCount > 0)
{
foreach (Transform item in tran)
{
GetObject(item, componentName);
}
}
}
public static List<Tr
Unity NGUI panel 实现层级管理 即点谁谁置顶
最新推荐文章于 2024-09-06 08:15:00 发布
该博客介绍了一个用于Unity3D的NGUI系统的实用工具类,包括UI事件处理、对象的遍历、UI元素的更新和维护等。特别地,它提供了一个方法来实现点击时将指定面板置顶的功能,通过调整UIPanel的深度来控制显示层级。此外,还涉及到头像图片的加载和管理,以及自定义头像的保存和刷新机制。
摘要由CSDN通过智能技术生成