您现在的位置是:主页 > news > 吴江城乡和住房建设局网站/百度网站的网址是什么
吴江城乡和住房建设局网站/百度网站的网址是什么
admin2025/6/4 18:36:21【news】
简介吴江城乡和住房建设局网站,百度网站的网址是什么,开网站做赌博,做淘宝客网站需要什么资质目录 一:系统工具 一:获取本机IP地址 二:获取本机MAC地址 三:获取字符串的MD5 四:计算文件的MD5 五:MD5的32位加密 六:字节的加密解密 七:Base64编码解码 八:随机…
吴江城乡和住房建设局网站,百度网站的网址是什么,开网站做赌博,做淘宝客网站需要什么资质目录 一:系统工具
一:获取本机IP地址
二:获取本机MAC地址
三:获取字符串的MD5
四:计算文件的MD5
五:MD5的32位加密
六:字节的加密解密
七:Base64编码解码
八:随机…
三:获取字符串的MD5
四:计算文件的MD5
五:MD5的32位加密
一:UI控件添加事件监听
三:判定鼠标是否停留在ui控件上
目录
一:系统工具
一:获取本机IP地址
二:获取本机MAC地址
三:获取字符串的MD5
四:计算文件的MD5
五:MD5的32位加密
六:字节的加密解密
七:Base64编码解码
八:随机生成字符串
二:UI控件常用功能及事件监听
一:UI控件添加事件监听
二:UGUI按钮添加移除点击监听事件
三:判定鼠标是否停留在ui控件上
四:限制Text内容的长度
五:富文本限制Text内指定内容的大小颜色加粗斜体
三:坐标系转换
一:世界坐标转换为UGUI坐标
二:屏幕坐标转换为UGUI坐标
四:查询添加子物体
一:查找获取子物体
二:获取某种类型的子物体
三:查找兄弟物体
四:通过组件查找场景中所有的物体,包括隐藏和激活的
五:通过Tag标签查找
六:设置所有子物体的Layer
五:文件IO操作
一:写文件
二:读文件
六:数学工具
一:几率问题设置
一:系统工具
一:获取本机IP地址
public static string GetLocalIP(){//Dns.GetHostName()获取本机名Dns.GetHostAddresses()根据本机名获取ip地址组IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());foreach (IPAddress ip in ips){if (ip.AddressFamily == AddressFamily.InterNetwork){return ip.ToString(); //ipv4}}return null;}
二:获取本机MAC地址
public static string GetMacAddress(){try{NetworkInterface[] nis = NetworkInterface.GetAllNetworkInterfaces();for (int i = 0; i < nis.Length; i++){if (nis[i].Name == "本地连接"){return nis[i].GetPhysicalAddress().ToString();}}return "null";}catch{return "null";}}
三:获取字符串的MD5
// 计算字符串的MD5值public static string Md5String(string source){MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();byte[] data = System.Text.Encoding.UTF8.GetBytes(source);byte[] md5Data = md5.ComputeHash(data, 0, data.Length);md5.Clear();string destString = "";for (int i = 0; i < md5Data.Length; i++){destString += System.Convert.ToString(md5Data[i], 16).PadLeft(2, '0');}destString = destString.PadLeft(32, '0');return destString;}
四:计算文件的MD5
public static string Md5File(string file){try{FileStream fs = new FileStream(file, FileMode.Open);string size = fs.Length / 1024 + "";//Debug.Log("当前文件的大小: " + file + "===>" + (fs.Length / 1024) + "KB");System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();byte[] retVal = md5.ComputeHash(fs);fs.Close();StringBuilder sb = new StringBuilder();for (int i = 0; i < retVal.Length; i++){sb.Append(retVal[i].ToString("x2"));}return sb + "|" + size;}catch (Exception ex){throw new Exception("md5file() fail, error:" + ex.Message);}}
五:MD5的32位加密
// MD5 32位加密public static string UserMd5(string str){string cl = str;StringBuilder pwd = new StringBuilder();MD5 md5 = MD5.Create();//实例化一个md5对像// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得for (int i = 0; i < s.Length; i++){// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符pwd.Append(s[i].ToString("x2"));//pwd = pwd + s[i].ToString("X");}return pwd.ToString();}
六:字节的加密解密
public static void Encypt(ref byte[] targetData, byte m_key){//加密,与key异或,解密的时候同样如此int dataLength = targetData.Length;for (int i = 0; i < dataLength; ++i){targetData[i] = (byte)(targetData[i] ^ m_key);}}
七:Base64编码解码
// Base64编码public static string Encode(string message){byte[] bytes = Encoding.GetEncoding("utf-8").GetBytes(message);return Convert.ToBase64String(bytes);}// Base64解码public static string Decode(string message){byte[] bytes = Convert.FromBase64String(message);return Encoding.GetEncoding("utf-8").GetString(bytes);}
八:随机生成字符串
public static string RandomCharacters(){string str = string.Empty;long num2 = DateTime.Now.Ticks + 0;System.Random random = new System.Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> 1)));for (int i = 0; i < 20; i++){char ch;int num = random.Next();if ((num % 2) == 0){ch = (char)(0x30 + ((ushort)(num % 10)));}else{ch = (char)(0x41 + ((ushort)(num % 0x1a)));}str = str + ch.ToString();}return str;}
二:UI控件常用功能及事件监听
一:UI控件添加事件监听
/// <summary>/// UGUI 控件添加事件监听/// </summary>/// <param name="target">事件监听目标</param>/// <param name="type">事件类型</param>/// <param name="callback">回调函数</param>public static void AddEventListener(this RectTransform target, EventTriggerType type, UnityAction<BaseEventData> callback){EventTrigger trigger = target.GetComponent<EventTrigger>();if (trigger == null){trigger = target.gameObject.AddComponent<EventTrigger>();trigger.triggers = new List<EventTrigger.Entry>();}//定义一个事件EventTrigger.Entry entry = new EventTrigger.Entry();//设置事件类型entry.eventID = type;//设置事件回调函数entry.callback = new EventTrigger.TriggerEvent();entry.callback.AddListener(callback);//添加事件到事件组trigger.triggers.Add(entry);}
二:UGUI按钮添加移除点击监听事件
// UGUI Button添加点击事件监听public static void AddEventListener(this RectTransform target, UnityAction callback){Button button = target.GetComponent<Button>();if (button){button.onClick.AddListener(callback);}else{Debug.Log(target.name + " 丢失了组件 Button!");}}// UGUI Button移除所有事件监听public static void RemoveAllEventListener(this RectTransform target){Button button = target.GetComponent<Button>();if (button){button.onClick.RemoveAllListeners();}else{Debug.Log(target.name + " 丢失了组件 Button!");}}
三:判定鼠标是否停留在ui控件上
public static bool IsPointerOverUGUI(){if (EventSystem.current){return EventSystem.current.IsPointerOverGameObject();}else{return false;}}
四:限制Text内容的长度
// 限制Text内容的长度在length以内,超过的部分用replace代替public static void RestrictLength(this Text tex, int length, string replace){if (tex.text.Length > length){tex.text = tex.text.Substring(0, length) + replace;}}
五:富文本限制Text内指定内容的大小颜色加粗斜体
// 限制Text中指定子字串的字体大小public static void ToRichSize(this Text tex, string subStr, int size){if (subStr.Length <= 0 || !tex.text.Contains(subStr)){return;}string valueRich = tex.text;int index = valueRich.IndexOf(subStr);if (index >= 0) valueRich = valueRich.Insert(index, "<size=" + size + ">");else return;index = valueRich.IndexOf(subStr) + subStr.Length;if (index >= 0) valueRich = valueRich.Insert(index, "</size>");else return;tex.text = valueRich;}// 限制Text中指定子字串的字体颜色public static void ToRichColor(this Text tex, string subStr, Color color){if (subStr.Length <= 0 || !tex.text.Contains(subStr)){return;}string valueRich = tex.text;int index = valueRich.IndexOf(subStr);if (index >= 0) valueRich = valueRich.Insert(index, "<color=" + color.ToHexSystemString() + ">");else return;index = valueRich.IndexOf(subStr) + subStr.Length;if (index >= 0) valueRich = valueRich.Insert(index, "</color>");else return;tex.text = valueRich;}// 限制Text中的指定子字串的字体加粗public static void ToRichBold(this Text tex, string subStr){if (subStr.Length <= 0 || !tex.text.Contains(subStr)){return;}string valueRich = tex.text;int index = valueRich.IndexOf(subStr);if (index >= 0) valueRich = valueRich.Insert(index, "<b>");else return;index = valueRich.IndexOf(subStr) + subStr.Length;if (index >= 0) valueRich = valueRich.Insert(index, "</b>");else return;tex.text = valueRich;}// 限制Text中的指定子字串的字体斜体public static void ToRichItalic(this Text tex, string subStr){if (subStr.Length <= 0 || !tex.text.Contains(subStr)){return;}string valueRich = tex.text;int index = valueRich.IndexOf(subStr);if (index >= 0) valueRich = valueRich.Insert(index, "<i>");else return;index = valueRich.IndexOf(subStr) + subStr.Length;if (index >= 0) valueRich = valueRich.Insert(index, "</i>");else return;tex.text = valueRich;}// 清除所有富文本样式public static void ClearRich(this Text tex){string value = tex.text;for (int i = 0; i < value.Length; i++){if (value[i] == '<'){for (int j = i + 1; j < value.Length; j++){if (value[j] == '>'){int count = j - i + 1;value = value.Remove(i, count);i -= 1;break;}}}}tex.text = value;}
三:坐标系转换
public enum UIType{/// <summary>/// 屏幕UI/// </summary>Overlay,/// <summary>/// 摄像机UI/// </summary>Camera,/// <summary>/// 世界UI/// </summary>World}
一:世界坐标转换为UGUI坐标
/// <summary>/// 世界坐标转换为UGUI坐标(只针对框架UI模块下的UI控件)/// </summary>/// <param name="position">世界坐标</param>/// <param name="reference">参照物(要赋值的UGUI控件的根物体)</param>/// <param name="uIType">UI类型</param>/// <returns>基于参照物的局部UGUI坐标</returns>public static Vector2 WorldToUGUIPosition(this Vector3 position, RectTransform reference = null, UIType uIType = UIType.Overlay){Vector3 screenPos;Vector2 anchoredPos = Vector2.zero;switch (uIType){case UIType.Overlay:screenPos = Camera.main.WorldToScreenPoint(position);screenPos.z = 0;RectTransformUtility.ScreenPointToLocalPointInRectangle(reference, screenPos, null, out anchoredPos);break;case UIType.Camera:screenPos = Camera.main.WorldToScreenPoint(position);screenPos.z = 0;RectTransformUtility.ScreenPointToLocalPointInRectangle(reference, screenPos, Camera.main, out anchoredPos);break;case UIType.World:break;}return anchoredPos;}
二:屏幕坐标转换为UGUI坐标
/// <summary>/// 屏幕坐标转换为UGUI坐标(只针对框架UI模块下的UI控件)/// </summary>/// <param name="position">屏幕坐标</param>/// <param name="reference">参照物(要赋值的UGUI控件的根物体)</param>/// <param name="uIType">UI类型</param>/// <returns>基于参照物的局部UGUI坐标</returns>public static Vector2 ScreenToUGUIPosition(this Vector3 position, RectTransform reference = null, UIType uIType = UIType.Overlay){Vector2 anchoredPos = Vector2.zero;switch (uIType){case UIType.Overlay:position.z = 0;RectTransformUtility.ScreenPointToLocalPointInRectangle(reference, position, null, out anchoredPos);break;case UIType.Camera:position.z = 0;RectTransformUtility.ScreenPointToLocalPointInRectangle(reference, position, Camera.main, out anchoredPos);break;case UIType.World:break;}return anchoredPos;}
四:查询添加子物体
一:查找获取子物体
//查找物体的方法public static Transform FindTheChild(GameObject goParent, string childName){Transform searchTrans = goParent.transform.Find(childName);if (searchTrans == null){foreach (Transform trans in goParent.transform){searchTrans = FindTheChild(trans.gameObject, childName);if (searchTrans != null){return searchTrans;}}}return searchTrans;}
二:获取某种类型的子物体
//获取子物体的脚本public static T GetTheChildComponent<T>(GameObject goParent, string childName) where T : Component{Transform searchTrans = FindTheChild(goParent, childName);if (searchTrans != null){return searchTrans.gameObject.GetComponent<T>();}else{return null;}}
三:查找兄弟物体
// 查找兄弟public static GameObject FindBrother(this GameObject obj, string name){GameObject gObject = null;if (obj.transform.parent){Transform tf = obj.transform.parent.Find(name);gObject = tf ? tf.gameObject : null;}else{GameObject[] rootObjs = UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects();foreach (GameObject rootObj in rootObjs){if (rootObj.name == name){gObject = rootObj;break;}}}return gObject;}
四:通过组件查找场景中所有的物体,包括隐藏和激活的
/// <summary>/// 通过组件查找场景中所有的物体,包括隐藏和激活的/// </summary>/// <typeparam name="T">组件类型</typeparam>/// <param name="Result">组件列表</param>public static void FindObjectsOfType<T>(List<T> Result) where T : Component{if (Result == null) Result = new List<T>();else Result.Clear();List<T> sub = new List<T>();GameObject[] rootObjs = SceneManager.GetActiveScene().GetRootGameObjects();foreach (GameObject rootObj in rootObjs){rootObj.transform.GetComponentsInChildren(true, sub);Result.AddRange(sub);}}
五:通过Tag标签查找
//通过Tag标签查找场景中指定物public static GameObject FindObjectByTag(string tagName){return GameObject.FindGameObjectWithTag(tagName);}
六:设置所有子物体的Layer
//设置所有子物体的Layerpublic static void SetLayer(int parentLayer, Transform childTrs){childTrs.gameObject.layer = parentLayer;for (int i = 0; i < childTrs.childCount; i++){Transform child = childTrs.GetChild(i);child.gameObject.layer = parentLayer;SetLayer(parentLayer, child);}}
五:文件IO操作
一:写文件
//写进去public static void WriteFile(string pathName, string info){StreamWriter sw;FileInfo fi = new FileInfo(pathName);sw = fi.CreateText();sw.WriteLine(info);sw.Close();sw.Dispose();}
二:读文件
//读出来public static string ReadFile(string pathName){StreamReader sr;FileInfo fi = new FileInfo(pathName);sr = fi.OpenText();string info = sr.ReadToEnd();sr.Close();sr.Dispose();return info;}
六:数学工具
一:几率问题设置
/**加*///rate:几率数组(%), total:几率总和(100%)// Debug.Log(rand(new int[] { 10, 5, 15, 20, 30, 5, 5,10 }, 100));public static int rand(int[] rate, int total){int r = UnityEngine.Random.Range(1, total + 1);int t = 0;for (int i = 0; i < rate.Length; i++){t += rate[i];if (r < t){return i;}}return 0;}/**减*///rate:几率数组(%), total:几率总和(100%)// Debug.Log(randRate(new int[] { 10, 5, 15, 20, 30, 5, 5,10 }, 100));public static int randRate(int[] rate, int total){int rand = UnityEngine.Random.Range(0, total + 1);for (int i = 0; i < rate.Length; i++){rand -= rate[i];if (rand <= 0){return i;}}return 0;}
未完待续