Godot 4:使用GDScript修改按钮字体颜色主题覆盖失效
Godot按钮文字淡入失效问题求助
我是Godot新手,下面的代码可能还有优化空间,欢迎大家提建议。我想实现场景加载时按钮的淡入效果,写了如下GDScript脚本:
extends Button @export_category("Fade Button") @export var theFadeButton: Button = self @export var fadeSpeed: float = 0.15 @export var fadeInWhenReady: bool @export var fadeInLoadWaitSeconds: float = 0 var defaultBackgroundAlpha: float = 1 var defaultTextAlpha: float = 1 var fadingIn: bool = false var fadingOut: bool = false # Called when the node enters the scene tree for the first time. func _ready(): defaultTextAlpha = theFadeButton.get("theme_override_colors/font_color").a defaultBackgroundAlpha = theFadeButton.get("theme_override_styles/normal").bg_color.a if fadeInWhenReady: fadeIn(fadeInLoadWaitSeconds) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if fadingIn: theFadeButton.get("theme_override_styles/normal").bg_color.a += fadeSpeed * delta * (defaultBackgroundAlpha / defaultTextAlpha) theFadeButton.get("theme_override_colors/font_color").a += fadeSpeed * delta if theFadeButton.get("theme_override_styles/normal").bg_color.a >= defaultBackgroundAlpha: theFadeButton.get("theme_override_styles/normal").bg_color.a = defaultBackgroundAlpha theFadeButton.get("theme_override_colors/font_color").a = defaultTextAlpha fadingIn = false if fadingOut: theFadeButton.get("theme_override_styles/normal").bg_color.a -= fadeSpeed * delta * (defaultBackgroundAlpha / defaultTextAlpha) theFadeButton.get("theme_override_colors/font_color").a -= fadeSpeed * delta if theFadeButton.get("theme_override_styles/normal").bg_color.a < 0: theFadeButton.get("theme_override_styles/normal").bg_color.a = 0 theFadeButton.get("theme_override_colors/font_color").a = 0 fadingOut = false func fadeIn(waitForSeconds: float = 0): theFadeButton.get("theme_override_styles/normal").bg_color.a = 0 theFadeButton.get("theme_override_colors/font_color").a = 0 if waitForSeconds != 0: await get_tree().create_timer(waitForSeconds).timeout fadingIn = true func fadeOut(waitForSeconds: float = 0): theFadeButton.get("theme_override_styles/normal").bg_color.a = defaultBackgroundAlpha theFadeButton.get("theme_override_colors/font_color").a = defaultTextAlpha if waitForSeconds != 0: await get_tree().create_timer(waitForSeconds).timeout fadingOut = true
我已经在编辑器里勾选了Theme Overrides选项并设置了相关颜色参数,目前按钮背景的淡入功能正常,但文字颜色完全没变化,附上编辑器截图参考:


内容的提问来源于stack exchange,提问作者erena
相关产品推荐
相关产品推荐

