【问题标题】:Additional parameters of GUILayout.LabelGUILayout.Label 的附加参数
【发布时间】:2015-03-10 14:17:52
【问题描述】:

Unity 手册没有在以下特定版本的GUILayout.Label 中提供params 的示例(或者我似乎找不到的其他地方?)

public static void Label(Texture image, GUIStyle style, params GUILayoutOption[] options);

所以,我想知道如何更改我正在处理的以下代码的字体大小

我在 Editor 文件中有一个普通的OnGUI()

GUILayout.BeginHorizontal( displayStyle1 );
GUILayout.Label( "Has title?" );

if ( hasTitle )
{
    if( GUILayout.Button( "yes", GUILayout.Width(40) ) )
    {
        hasTitle = true;
    }

    GUILayout.EndHorizontal();              
}

我在 Executor 文件中有自己的MyOnGUI()

if( fieldInput.HasTitle )
{
    GUILayout.BeginHorizontal( displayStyle1 );
    GUILayout.Label( fieldInput.Title, displayStyle1 );
    GUILayout.EndHorizontal();
}

一旦你按下 yes 并在编辑器中输入 title,你在 Executor 运行后得到的需要更大的字体,所以我想我应该修改这个行:

GUILayout.Label( fieldInput.Title, displayStyle1 );

因此,我需要看一个示例,说明如何将更大的字体指定为第三个参数...

这可能吗?在不修改设置样式的情况下直接改变字体大小是否正确?

【问题讨论】:

    标签: user-interface unity3d


    【解决方案1】:
    var style= GUI.skin.GetStyle("label");
    style.fontSize = 24; // whatever you set
    GUILayout.Label( fieldInput.Title, style);
    

    【讨论】:

    • 谢谢大卫!它解决了我的问题。观察:除非在代码中再次明确更改,否则它似乎保持有效。我的意思是,即使我删除了代码,字体大小也保持不变,就好像系统设置已永久更改一样。您是否知道哪个系统脚本处理 skin 设置,以及 defaultlabel 样式位于何处?
    • 在调用style.fontsize=24之前,缓存默认字体大小: var defaultSize = style.fontSize;绘制大字体标签后,您可以使用 defaultSize 将其还原。
    猜你喜欢
    • 2023-03-29
    • 2015-09-13
    • 2013-08-04
    • 2019-06-21
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多