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()
{
// 标准分辨率下 设计图顶部留了80像素的偏移
int designOffset = ((Screen.safeArea.height + Screen.safeArea.y)
== Screen.height ? 0 : (int)Mathf.Round(80 * UIContentScaler.scaleFactor));
// 设置最低偏移是设计图顶部的偏移量
return Mathf.Max(0, 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;
}
}
}