为 ImageTextButton 设置 fontColor 在一个屏幕上有效,但在另一个屏幕上无效 - LIBGDX Scene2D

Setting fontColor for ImageTextButton works in one screen but not on another - LIBGDX Scene2D

我有两个 ImageText 按钮,这是我在主菜单屏幕和游戏屏幕中设置它们的方式:

    ImageTextButton.ImageTextButtonStyle ibs = new ImageTextButton.ImageTextButtonStyle();
    ibs.font = skin.getFont("scorescombo3-font160");
    ibs.fontColor = new Color(1.0f, 0.6f, 0.0f, 0.65f);
    ibs.up = new TextureRegionDrawable(skin.getRegion("level_name"));
    level_no_button = new ImageTextButton("button", ibs);

我使用从 Hiero 导出的相同字体文件。

在我的游戏屏幕中,我看到的文本是橙色,因为它应该被看到但是在我的MainMenu screen 即使 Alpha 渲染正确,它仍然是 White

我在我的代码中搜索了所有 level_no_button 颜色设置,但没有一行将颜色设置为白色。为什么颜色设置在一个屏幕上有效,但在另一个屏幕上无效?更重要的是,为什么 alpha 起作用但颜色不起作用?

显然是另一个屏幕中的着色器将字体绘制为白色。

我改了:

  vec4 texColor  = texture2D(u_texture, v_texCoord);

致: 变化 vec4 v_color; ...

  vec4 texColor  = texture2D(u_texture, v_texCoord) * v_color;

这解决了我的问题。