yyl
2025-10-21 3bd7f56906e31e8fe0072108c9d4652707b51de8
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)
@@ -120,10 +120,11 @@
        {
            return;
        }
        _toggle.onValueChanged.RemoveAllListeners();
        _toggle.onValueChanged.AddListener(_action);
    }
    public static void SetListener(this Toggle toggle, UnityAction<bool> action)
    {
        if (toggle == null)
@@ -144,7 +145,7 @@
        _toggle.onValueChanged.RemoveAllListeners();
    }
    public static void AddListener(this Slider _slider, UnityAction<float> _action)
    {
        if (_slider == null)
@@ -154,7 +155,7 @@
        _slider.onValueChanged.AddListener(_action);
    }
    public static void SetListener(this Slider slider, UnityAction<float> action)
    {
        if (slider == null)
@@ -175,7 +176,7 @@
        _slider.onValueChanged.RemoveAllListeners();
    }
    public static void AddListener(this InputField _inputField, UnityAction<string> _action)
    {
        if (_inputField == null)
@@ -196,7 +197,7 @@
        inputField.onValueChanged.AddListener(action);
    }
    public static void RemoveAllListeners(this InputField _inputField)
    {
        if (_inputField == null)
@@ -222,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)
@@ -238,20 +239,27 @@
            switch (pattern)
            {
                case 1:
                    _btnTxt.color = UIHelper.GetUIColor(_colorful ? TextColType.LightYellow : TextColType.White);
                    _btnTxt.color = UIHelper.GetUIColor(_colorful ? TextColType.LightWhite : TextColType.White);
                    break;
                case 2:
                    _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)
        {
@@ -262,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)
@@ -277,11 +290,11 @@
            return;
        }
        var sprite = ResManager.Instance.LoadAsset<Sprite>("Sprite", _id);
        var sprite = UILoader.LoadSprite(_id);
        _image.overrideSprite = sprite;
    }
    public static void SetSprite(this TextImage _textImage, string _id)
    {
        if (_textImage == null)
@@ -289,10 +302,56 @@
            return;
        }
        var sprite = ResManager.Instance.LoadAsset<Sprite>("Sprite", _id);
        var sprite = UILoader.LoadSprite(_id);
        _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);
        if (null == sprite) return;
        _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)
    {
@@ -309,4 +368,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;
    }
}