我有一个GUILayout.TextField,我需要将文本居中。我添加了一个GUIStyle作为参数
centerStyle = new GUIStyle
{
alignment = TextAnchor.MiddleCenter,
};
但是,这会导致我的GUILayout.TextField的背景框消失,文本变得不对齐。
在居中之前: Before
居中后: After
(抱歉,我无法发布图片)
这是我创建TextField的代码:
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
guildName = GUILayout.TextField(guildName, 20, centerStyle, GUILayout.Width(200));
bool canCreate = true;
foreach (string word in guilds)
{
if (guildName == word)
canCreate = false;
}
if (GUILayout.Button("Create", GUILayout.Width(75)) && canCreate)
{
GameManagerVik.CreateGuild(guildName);
}
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
对于我的代码的任何帮助或建议将非常感谢,提前感谢!
答案 0 :(得分:2)
请勿使用任何需要放置在OnGUI
功能中的API。其中包括GUILayout.TextField
和GUIStyle
。这是旧的UI系统,已被替换为新系统。仅在制作编辑器插件时使用此功能。
如果您想从用户那里获取文字,请使用InputField
组件。
要创建一个,请转到GameObject ---> UI --->输入字段。
如果要向用户显示文本,请使用Text
组件。
要创建一个,请转到GameObject ---> UI --->文本。
您可以在此菜单中查看其他UI组件。
对齐Text
组件中的文字:
yourText.alignment = TextAnchor.MiddleCenter;
要检测点击它们的时间,或输入的更改时间,请参阅this发布。