using DG.Tweening; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; 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) { var parent = Utils.FindUpParent(game.transform); var toast = parent.Find("ToastContainer"); if (toast == null) { var newToast = MonoBehaviour.Instantiate(Resources.Load("UI/Prefab/ToastContainer")); newToast.name = "ToastContainer"; newToast.GetComponent().position = new Vector3(Screen.width / 2, Screen.height / 2, 0); newToast.transform.parent = parent; toast = newToast.transform; } toast.GetComponent().showToast(JsonConvert.SerializeObject(new { text, duration })); } /*显示简略提示,需要拖Toast的预制件,且保证其他组件名字不是Toast,ToastContainer*/ /*删除父亲节点下的所有孩子*/ 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); } } /*删除父亲节点下的所有孩子*/ /*显示网络图片*/ 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); } /*获取最顶层对象*/ } }