using FairyGUI; using System.Collections.Generic; using UI.Common; using UnityEngine; namespace GFGGame { public class ViewGlobal { private static UI_ComHolder comHolder; private static EffectUI _effectUI1; public static void CreatClickEffect() { if (comHolder == null) { comHolder = UI_ComHolder.Create(); comHolder.target.touchable = false; ViewManager.AddChildToFloatLayer(comHolder.target); comHolder.target.SetPosition(-100, -100, 0); _effectUI1 = EffectUIPool.CreateEffectUI(comHolder.m_holder, "ui_dj", "DJ"); GRoot.inst.onTouchBegin.Add(SetClickPos); } } private static void SetClickPos() { Vector2 pos = GRoot.inst.GlobalToLocal(Stage.inst.touchPosition); comHolder.m_holder.visible = false; comHolder.m_holder.visible = true; comHolder.target.SetPosition(pos.x, pos.y, 0); } /// /// 获取顶部摄像头的高度,减去一定的位移是因为设计图本身为顶部留出了一定的间隙 /// /// static float GetTopOffset() { int designOffset = ((Screen.safeArea.height + Screen.safeArea.y) == Screen.height ? 0 : 80); return Screen.height - Screen.safeArea.height - Screen.safeArea.y - designOffset; } /// /// 获取画布根据分辨率适配后的,顶部的实际高度 /// /// public static float GetRealTopOffset() { return Screen.height / UIContentScaler.scaleFactor - GetUIHeight(); } /// /// 获取画布根据分辨率适配后的UI高度 /// /// public static float GetUIHeight() { return (Screen.height - GetTopOffset()) / UIContentScaler.scaleFactor; } public static List FindAllGLoaderInTrans(Transform parent) { List foundChildren = new List(); // 遍历当前父节点的所有子节点 foreach (Transform child in parent) { // 检查子节点的名称是否匹配 if (child.name == "GLoader" || child.name == "Shape") { // 将匹配的子节点添加到列表中 foundChildren.Add(child); } // 递归调用,查找孙子节点 foundChildren.AddRange(FindAllGLoaderInTrans(child)); } return foundChildren; } private static List fullScreenPicNames = new List() { "loaBg", "mask" }; private static List notMoveUI = new List() { "Top_img" }; public static bool IsFullScreenPic(string name) { foreach (string s in fullScreenPicNames) { if (name == s) return true; } return false; } public static bool IsNotMoveUI(string name) { foreach (string s in notMoveUI) { if (s.Contains(name)) return true; } return false; } } }