C# 如何给GUI.Button上色,同时更改按钮文本大小?

C# 如何给GUI.Button上色,同时更改按钮文本大小?,c#,unity3d,C#,Unity3d,通过这种方式,它将文本大小更改为更大,但不将其染成红色。 如果我要删除GUI样式,它会将按钮涂成红色,但是文本大小会太小。听起来你好像在以某种方式覆盖GUI样式的属性。从GUI.skin.button中获取默认按钮GUIStyle,并从中进行所需的更改: var oldColor = GUI.backgroundColor; GUI.backgroundColor = Color.red; var searchButton = GUI.Button(new Rect(0, 55, 390, 30

通过这种方式,它将文本大小更改为更大,但不将其染成红色。
如果我要删除GUI样式,它会将按钮涂成红色,但是文本大小会太小。

听起来你好像在以某种方式覆盖GUI样式的属性。从
GUI.skin.button
中获取默认按钮
GUIStyle
,并从中进行所需的更改:

var oldColor = GUI.backgroundColor;
GUI.backgroundColor = Color.red;
var searchButton = GUI.Button(new Rect(0, 55, 390, 30), "Search", guiStyle);
    if (searchButton)
        {
        }

除非您正在编写编辑器脚本,否则请停止使用OnGui并使用.Working。还有一个子问题:当我输入东西时,我如何改变文本字段的大小?objectsToSearch=GUI.TextField(新的Rect(120,90,150,70),objectsToSearch,25,guiStyle);这会使用GUI样式更改大小,但同时也会使Textfield Rect消失。我不确定您所说的“使其消失”是什么意思,但请确保
GUI样式。clipping
设置为
TextClipping.Overflow
,这样,如果它太大,它仍然可以显示。
Color oldColor = GUI.backgroundColor;
GUI.backgroundColor = Color.red;

// make copy of default button style 
GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);

// change font size
buttonStyle.fontSize = 18;

bool searchButton = GUI.Button(new Rect(0, 55, 390, 30), "Search", buttonStyle);
if (searchButton) {
    // ...
}