using GameLogic;
using UnityEngine;
using GameCore;
using UnityEngine.UI;
using UnityEngine.Events;
public static class GlobalExtension
{
///
/// 设置
///
///
///
public static void DisableButton(this Selectable button, bool state)
{
ColorBlock colorBlock = button.colors;
colorBlock.disabledColor = Color.blue;
button.colors = colorBlock;
button.interactable = state;
if (!state)
{
if (button.targetGraphic.material == Image.defaultGraphicMaterial)
{
button.targetGraphic.material = App.ResMgr.LoadAsset("UI-DefaultGray");
}
}
}
///
/// 图片置灰
///
///
public static void ToGray(this Image image)
{
if (image.material == Image.defaultGraphicMaterial)
{
image.material = App.ResMgr.LoadAsset("UI-DefaultGray");
}
image.color = Color.blue;
}
///
/// 添加组件,如果有,就不添加
///
///
///
public static T AddMissingComponent(this GameObject gameObj) where T : Component
{
T t = gameObj.GetComponent();
if (t == null)
t = gameObj.AddComponent();
return t;
}
///
/// 格式化描述
///
///
///
public static string FormatText(this string str)
{
return str.Replace("\\n", "\n").Replace("@", "\u3000");
}
///
/// 格式化描述
///
///
///
public static string FormatChatName(this string str)
{
return str.Replace("\\n", "\n").Replace(" ", "\u3000");
}
///
/// 是否正常
///
///
///
public static bool IsNormal(this UnityAction action)
{
object target = action.Target;
if (target != null)
{
UnityEngine.Object obj = target as UnityEngine.Object;
if (object.ReferenceEquals(obj, null) || obj != null)
return true;
}
return false;
}
///
/// 是否正常
///
///
///
public static void Do(this UnityAction action)
{
if (action.IsNormal())
action();
}
///
/// 是否正常
///
///
///
public static bool IsNormal(this UnityAction action)
{
object target = action.Target;
if (target != null)
{
UnityEngine.Object obj = target as UnityEngine.Object;
if (object.ReferenceEquals(obj, null) || obj != null)
return true;
}
return false;
}
///
/// 通过Scale显示或者隐藏
///
///
///
public static void SetActiveByScale(this GameObject gameObj, bool isShow)
{
gameObj.transform.localScale = isShow ? Vector3.one : Vector3.zero;
}
public static void HideByXScale(this GameObject gameObj)
{
gameObj.transform.localScale = new Vector3(0.0f, 1.0f, 1.0f);
}
public static void ShowByXScale(this GameObject gameObj)
{
gameObj.transform.localScale = Vector3.one;
}
///
/// 设置层级
///
///
///
public static void SetLayer(this GameObject gameObj, string layerName)
{
Transform[] trans = gameObj.transform.GetComponentsInChildren(true);
for (int i = 0; i < trans.Length; i++)
{
trans[i].gameObject.layer = LayerMask.NameToLayer(layerName);
}
}
///
/// 设置层级
///
///
///
public static void SetLayer(this GameObject gameObj, int layer)
{
Transform[] trans = gameObj.transform.GetComponentsInChildren(true);
for (int i = 0; i < trans.Length; i++)
{
trans[i].gameObject.layer = layer;
}
}
}