您的位置:首页 > 移动开发 > Unity3D

Unity GUI组件控制随记

2013-11-07 01:53 483 查看
1- 设置TextField, PasswordField, TextArea控件为输入焦点:

在绘制控件前使用GUI.SetNextControlName函数设置下一个输入控件的控制名称。

在绘制控件后的OnGUI 函数内可通过GUI.FocusControl函数设置对应控件为焦点控件。

示例:

GUI.SetNextControlName("test_control");

GUI.TextField(new Rect(4, 4, 200, 16), "test");

GUI.FocusControl("test_control");


2- 设置TextField, PasswordField, TextArea之类的控件输入光标位置:

通过函数

TextEditor obj = GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl) as TextEditor;

获取当前键盘输入焦点的文字控制对象。

后可通过控制对象进行相关的控制,如通过SelectTextEnd()函数将光标移动到末尾等操作。

注意的是当使用FocusControl设置焦点后需在下一帧调用光标设置等操作,否则会出现部分操作失效的情况,具体原因跟Unity本身GUI绘制的机制有关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息