yyl
2025-10-17 c124d98bdf9659cf764bebb799bee42c30eb152f
Main/Utility/ComponentExtersion.cs
@@ -80,7 +80,7 @@
        return component;
    }
    public static void AddListener(this Button _button, UnityAction _action)
    {
        if (_button == null)
@@ -92,7 +92,7 @@
        _button.onClick.AddListener(_action);
    }
    public static void RemoveAllListeners(this Button _button)
    {
        if (_button == null)
@@ -102,7 +102,7 @@
        _button.onClick.RemoveAllListeners();
    }
    public static void SetListener(this Button button, UnityAction action)
    {
        if (button == null)
@@ -124,7 +124,7 @@
        _toggle.onValueChanged.AddListener(_action);
    }
    public static void SetListener(this Toggle toggle, UnityAction<bool> action)
    {
        if (toggle == null)
@@ -145,7 +145,7 @@
        _toggle.onValueChanged.RemoveAllListeners();
    }
    public static void AddListener(this Slider _slider, UnityAction<float> _action)
    {
        if (_slider == null)
@@ -155,7 +155,7 @@
        _slider.onValueChanged.AddListener(_action);
    }
    public static void SetListener(this Slider slider, UnityAction<float> action)
    {
        if (slider == null)
@@ -176,7 +176,7 @@
        _slider.onValueChanged.RemoveAllListeners();
    }
    public static void AddListener(this InputField _inputField, UnityAction<string> _action)
    {
        if (_inputField == null)
@@ -197,7 +197,7 @@
        inputField.onValueChanged.AddListener(action);
    }
    public static void RemoveAllListeners(this InputField _inputField)
    {
        if (_inputField == null)
@@ -223,7 +223,7 @@
    //     EnableButtonConfig.SetEnable(_btn, _btnTxt, _enable, _type);
    // }
    public static void SetColorful(this Button _btn, Text _btnTxt, bool _colorful, int pattern = 0)
    {
        if (_btn != null)
@@ -245,14 +245,21 @@
                    _btnTxt.color = UIHelper.GetUIColor(_colorful ? TextColType.Green : TextColType.White);
                    break;
                default:
                    _btnTxt.color = UIHelper.GetUIColor(_colorful ? TextColType.NavyBrown : TextColType.White);
                    //false 灰色,true 原色
                    if (!_colorful)
                        _btnTxt.text = UIHelper.AppendColor(TextColType.NavyGray, _btnTxt.text);    //不改变组件颜色,只改变显示颜色
                    else
                        _btnTxt.text = UIHelper.AppendColor(_btnTxt.color, _btnTxt.text);
                    break;
            }
        }
    }
    public static void SetInteractable(this Button _btn, Text _btnText, bool _interactable)
    // 设置按钮是否可点击,且取第一个文本组件置灰或置原色
    // 要先设置文本再调用该函数 因为没有改变文本组件的颜色避免颜色被还原,同理恢复可以不用改变颜色改文字即可
    // 更多功能请使用SetColorful
    public static void SetInteractable(this Button _btn, bool _interactable, Text _btnText = null)
    {
        if (_btn != null)
        {
@@ -263,14 +270,19 @@
                imageEx.gray = !_interactable;
            }
        }
        if (_btnText == null)
            _btnText = _btn.GetComponentInChildren<Text>();
        if (_btnText != null)
        {
            _btnText.color = UIHelper.GetUIColor(_interactable ? TextColType.NavyBrown : TextColType.White);
            //_btnText.color = _btnText.color.SetA(_interactable ? 1 : 0.5f);
            //false 灰色,true 原色
            if (!_interactable)
                _btnText.text = UIHelper.AppendColor(TextColType.NavyGray, _btnText.text);    //不改变组件颜色,只改变显示颜色
            else
                _btnText.text = UIHelper.AppendColor(_btnText.color, UIHelper.RemoveColor(_btnText.text));
        }
    }
    //通过ICON表加载
    public static void SetSprite(this Image _image, string _id)
    {
        if (_image == null)
@@ -282,7 +294,7 @@
        _image.overrideSprite = sprite;
    }
    public static void SetSprite(this TextImage _textImage, string _id)
    {
        if (_textImage == null)
@@ -294,6 +306,51 @@
        _textImage.sprite = sprite;
    }
    //通过图片名加载, 如物品表 技能表等,节省在Icon表做多余配置
    public static void SetOrgSprite(this Image _image, string iconName, string folderName = "icon")
    {
        if (_image == null)
        {
            return;
        }
        var sprite = UILoader.LoadSprite(folderName, iconName);
        _image.overrideSprite = sprite;
    }
    public static void SetItemSprite(this Image _image, int itemID)
    {
        if (_image == null)
        {
            return;
        }
        var itemConfig = ItemConfig.Get(itemID);
        if (itemConfig == null)
        {
            return;
        }
        var sprite = UILoader.LoadSprite("icon", itemConfig.IconKey);
        _image.overrideSprite = sprite;
    }
    public static void SetSkillSprite(this Image _image, int skillID)
    {
        if (_image == null)
        {
            return;
        }
        var skillConfig = SkillConfig.Get(skillID);
        if (skillConfig == null)
        {
            return;
        }
        var sprite = UILoader.LoadSprite("SkillIcon", skillConfig.IconName);
        _image.overrideSprite = sprite;
    }
    public static void SetActive(this Component compoent, bool active)
    {
@@ -310,4 +367,27 @@
        }
    }
    public static void SetTexture2D(this RawImage _image, string _id)
    {
        if (_image == null)
        {
            return;
        }
        var texture = UILoader.LoadTexture2D(_id);
        _image.texture = texture;
    }
    public static void SetTexture2DPNG(this RawImage _image, string _id)
    {
        if (_image == null)
        {
            return;
        }
        var texture = UILoader.LoadTexture2DPNG(_id);
        _image.texture = texture;
    }
}