You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何调整GUI.Label的字体大小、字体样式及颜色?

Unity中如何调整GUI.Label的字体大小、字体样式及颜色?

嘿,我刚好熟悉Unity里这个旧GUI系统的用法,咱们一步步来解决你的问题~你现在用的是Unity传统的OnGUI系统里的GUI.Label,要调整字体大小、样式和颜色,其实用GUIStyle就能搞定,下面分点给你讲清楚:

一、先解决颜色问题(最快的两种方式)

  1. 临时修改全局GUI颜色
    你可以在绘制Label之前,先设置GUI.color为你想要的颜色,绘制完之后记得还原成默认颜色,不然会影响其他GUI元素的显示:

    void OnGUI()
    {
        // 设置颜色为亮黄色(你可以换成Color.red、Color.blue等,或者自定义Color(0.8f,0.8f,0)这种)
        GUI.color = Color.yellow;
        GUI.Label(new Rect(630, 20, 300, 100), "Score: " + points);
        GUI.color = Color.white; // 还原回默认白色,避免影响其他UI
    }
    
  2. 用GUIStyle指定颜色
    这种方式更灵活,不会影响全局,后面讲字体的时候也会用到,先提一下:在GUIStyle的normal.textColor里设置颜色就行,后面会结合字体一起给代码示例。

二、调整字体大小和样式

要改字体大小和自定义字体,必须用到GUIStyle,这里有两种常用方法:

方法1:可视化设置(推荐,更方便调整)

第一步,在你的脚本里加一个公开的GUIStyle变量:

public GUIStyle scoreLabelStyle; // 公开到Inspector里

第二步,回到Unity编辑器,选中挂载这个脚本的对象,在Inspector里找到这个scoreLabelStyle变量,点击右边的小箭头,选择"Create New"创建一个新的样式。
第三步,在弹出的GUIStyle设置面板里,你可以:

  • 在Font Size里输入想要的字号(比如30,这样就不会看不清了)
  • 在Font下拉框里选择你导入的自定义字体(记得先把字体导入到项目里)
  • 在Normal -> Text Color里设置文字颜色
    第四步,修改你的Label绘制代码,把GUIStyle传进去:
void OnGUI()
{
    // 确保样式不为空再绘制
    if (scoreLabelStyle != null)
    {
        GUI.Label(new Rect(630, 20, 300, 100), "Score: " + points, scoreLabelStyle);
    }
    else
    {
        // 备用:如果样式没设置,用默认绘制
        GUI.Label(new Rect(630, 20, 300, 100), "Score: " + points);
    }
}

方法2:代码动态设置

如果不想在Inspector里设置,也可以在代码里直接创建并配置GUIStyle:

void OnGUI()
{
    // 复制默认的Label样式作为基础
    GUIStyle customScoreStyle = new GUIStyle(GUI.skin.label);
    
    // 设置字号
    customScoreStyle.fontSize = 30;
    // 设置颜色
    customScoreStyle.normal.textColor = Color.white;
    // 设置自定义字体(注意:字体要放在Resources文件夹下,不然Resources.Load找不到)
    customScoreStyle.font = Resources.Load<Font>("Fonts/MyCustomFont");
    
    // 用自定义样式绘制Label
    GUI.Label(new Rect(630, 20, 300, 100), "Score: " + points, customScoreStyle);
}

如果用自定义字体,记得把字体文件放到项目里的Resources文件夹(没有的话自己创建一个),路径要和Resources.Load里的对应。

最后小提醒

你原来的Rect参数是new Rect(630, 20, 300, 100),如果字号调大了,这个Rect的高度(100)可能不够,导致文字被截断,你可以适当把高度调大一点,比如改成150,这样文字就能完整显示啦~

备注:内容来源于stack exchange,提问作者user22436336

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 14:33:02