2021-03-30 14:14:24 +08:00
|
|
|
|
using DG.Tweening;
|
|
|
|
|
|
using Newtonsoft.Json;
|
2021-03-25 17:18:51 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using System.Collections.Generic;
|
2021-04-09 09:44:06 +08:00
|
|
|
|
using System.Globalization;
|
2021-03-25 17:18:51 +08:00
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using UnityEngine.Networking;
|
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Assets.Scripts
|
|
|
|
|
|
{
|
|
|
|
|
|
public static class Utils
|
|
|
|
|
|
{
|
|
|
|
|
|
/*显示简略提示,需要拖Toast的预制件,且保证其他组件名字不是Toast,ToastContainer*/
|
|
|
|
|
|
public static void showToast(GameObject game,string text,int duration = 1)
|
|
|
|
|
|
{
|
2021-03-30 14:14:24 +08:00
|
|
|
|
var parent = Utils.FindUpParent(game.transform);
|
|
|
|
|
|
var toast = parent.Find("ToastContainer");
|
|
|
|
|
|
if (toast == null)
|
2021-03-25 17:18:51 +08:00
|
|
|
|
{
|
2021-03-30 14:14:24 +08:00
|
|
|
|
var newToast = MonoBehaviour.Instantiate(Resources.Load<GameObject>("UI/Prefab/ToastContainer"));
|
|
|
|
|
|
newToast.name = "ToastContainer";
|
|
|
|
|
|
newToast.GetComponent<RectTransform>().position = new Vector3(Screen.width / 2, Screen.height / 2, 0);
|
|
|
|
|
|
newToast.transform.parent = parent;
|
|
|
|
|
|
toast = newToast.transform;
|
2021-03-25 17:18:51 +08:00
|
|
|
|
}
|
2021-03-30 14:14:24 +08:00
|
|
|
|
toast.GetComponent<Toast>().showToast(JsonConvert.SerializeObject(new
|
|
|
|
|
|
{
|
|
|
|
|
|
text,
|
|
|
|
|
|
duration
|
|
|
|
|
|
}));
|
2021-03-25 17:18:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
/*显示简略提示,需要拖Toast的预制件,且保证其他组件名字不是Toast,ToastContainer*/
|
2021-03-25 17:53:48 +08:00
|
|
|
|
|
|
|
|
|
|
/*删除父亲节点下的所有孩子*/
|
|
|
|
|
|
static public void DestroyChildren(this Transform t)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool isPlaying = Application.isPlaying;
|
|
|
|
|
|
|
|
|
|
|
|
while (t.childCount != 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Transform child = t.GetChild(0);
|
|
|
|
|
|
|
|
|
|
|
|
if (isPlaying)
|
|
|
|
|
|
{
|
|
|
|
|
|
child.parent = null;
|
|
|
|
|
|
UnityEngine.Object.Destroy(child.gameObject);
|
|
|
|
|
|
}
|
|
|
|
|
|
else UnityEngine.Object.DestroyImmediate(child.gameObject);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/*删除父亲节点下的所有孩子*/
|
2021-03-25 17:18:51 +08:00
|
|
|
|
|
|
|
|
|
|
/*显示网络图片*/
|
|
|
|
|
|
public delegate Coroutine StartCoroutine(IEnumerator routine);
|
|
|
|
|
|
public static void DisplayImage(StartCoroutine startCoroutine,RawImage img, string url)
|
|
|
|
|
|
{
|
|
|
|
|
|
startCoroutine(DownloadImage(img, url));
|
|
|
|
|
|
}
|
|
|
|
|
|
static IEnumerator DownloadImage(RawImage img,string MediaUrl)
|
|
|
|
|
|
{
|
|
|
|
|
|
UnityWebRequest request = UnityWebRequestTexture.GetTexture(MediaUrl);
|
|
|
|
|
|
yield return request.SendWebRequest();
|
|
|
|
|
|
if (request.isNetworkError || request.isHttpError)
|
|
|
|
|
|
Debug.Log(request.error);
|
|
|
|
|
|
else
|
|
|
|
|
|
img.texture = ((DownloadHandlerTexture)request.downloadHandler).texture;
|
|
|
|
|
|
}
|
|
|
|
|
|
/*显示网络图片*/
|
|
|
|
|
|
|
|
|
|
|
|
/*获取最顶层对象*/
|
|
|
|
|
|
public static Transform FindUpParent(Transform zi)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (zi.parent == null)
|
|
|
|
|
|
return zi;
|
|
|
|
|
|
else
|
|
|
|
|
|
return FindUpParent(zi.parent);
|
|
|
|
|
|
}
|
|
|
|
|
|
/*获取最顶层对象*/
|
2021-04-09 09:44:06 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static Color HexToColor(string hex)
|
|
|
|
|
|
{
|
|
|
|
|
|
byte r = byte.Parse(hex.Substring(0, 2), NumberStyles.HexNumber);
|
|
|
|
|
|
byte g = byte.Parse(hex.Substring(2, 2), NumberStyles.HexNumber);
|
|
|
|
|
|
byte b = byte.Parse(hex.Substring(4, 2), NumberStyles.HexNumber);
|
|
|
|
|
|
return new Color32(r, g, b, byte.MaxValue);
|
|
|
|
|
|
}
|
2021-04-09 15:57:50 +08:00
|
|
|
|
public static Color HexToColorHtml(string hex)
|
|
|
|
|
|
{
|
|
|
|
|
|
ColorUtility.TryParseHtmlString(hex, out Color c);
|
|
|
|
|
|
return c;
|
|
|
|
|
|
}
|
2021-04-15 09:24:15 +08:00
|
|
|
|
|
2021-04-14 15:02:33 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Generate random digit code
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="length">Length</param>
|
|
|
|
|
|
/// <returns>Result string</returns>
|
|
|
|
|
|
public static string GenerateRandomDigitCode(int length)
|
|
|
|
|
|
{
|
|
|
|
|
|
var random = new System.Random();
|
|
|
|
|
|
string str = string.Empty;
|
|
|
|
|
|
for (int i = 0; i < length; i++)
|
|
|
|
|
|
str = String.Concat(str, random.Next(10).ToString());
|
|
|
|
|
|
return str;
|
|
|
|
|
|
}
|
2021-03-25 17:18:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|