0


Unity基础知识笔记(三)——NGUI中的UIInput

NGUI中的UIInput的使用_ngui uiinput-CSDN博客https://blog.csdn.net/MonoBehaviour/article/details/78423299?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171023629716800180684601%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171023629716800180684601&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-78423299-null-null.142%5Ev99%5Epc_search_result_base4&utm_term=uiinput&spm=1018.2226.3001.4187

一、UIInput是什么

UIInput(用户界面输入)通常指的是用于在用户界面中接收用户输入的元素。在Unity中,UIInput通常以Input Field的形式存在,它允许用户在游戏中输入文本或数字等信息。

二、UIInput的应用

  1. 文本输入: UIInput主要用于接收用户的文本输入。用户可以在输入字段中键入文本,这些文本通常用于游戏中的各种目的,比如玩家名称、密码、聊天消息等。
  2. 数字输入: 除了文本,UIInput也可以用于接收数字输入。您可以配置输入字段以仅接受数字,并可以设置输入字段的最小和最大值。
  3. 多行文本: UIInput可以配置为允许多行文本输入,这对于用户输入长文本或多行消息很有用。
  4. 密码输入: UIInput可以配置为接收密码输入。在这种情况下,用户输入的文本将被隐藏,通常以“*”或其他字符代替。
  5. 输入验证: 您可以通过脚本编程来验证用户的输入。这可以包括验证文本是否符合特定格式、是否是有效的电子邮件地址等。
  6. 事件处理: UIInput可以发送事件,以便在用户输入时触发相应的操作。例如,在用户完成输入时触发事件,可以执行保存数据或处理文本的操作。
  7. 自定义样式: 您可以在Unity的Inspector面板中调整UIInput的外观,包括背景、边框、字体、文本颜色等。这使得您可以根据游戏的需求自定义输入字段的外观。

三、UIInput的使用以及其各项属性

1.添加脚本组件

单击笔记(二)中提到的Add Component,给Label物体添加Input Field

2.代码声明

在代码中表现为

public UIInput inputLabel;

3.各项属性

Label(标签): InputField的文本标签,显示在InputField之前,用于标识输入字段的用途或内容。

Starting Value(初始值): InputField的初始值,即在用户输入之前显示在输入字段中的默认文本或数字。

Saved As(保存为): 这是指定输入字段的值将被保存为哪个变量的属性。在使用该InputField获取用户输入后,可以将输入的值保存到指定的变量中。

Active Text Color(活动文本颜色): 当输入字段处于活动状态(用户正在编辑文本时)时,文本显示的颜色。活动状态指的是用户正在编辑该输入字段,光标正在输入文本时的状态。活动文本颜色是用户输入时看到的文本的颜色。

Inactive Color(非活动颜色): 当输入字段处于非活动状态(用户不在编辑该字段时)时,文本显示的颜色。非活动状态指的是用户不在编辑该输入字段时的状态。非活动颜色是当输入字段未被激活时显示的文本颜色。

Caret Color(光标颜色): 光标是指示用户当前正在编辑的文本位置的垂直竖线或闪烁的标志。Caret Color是光标的颜色,它指定了光标在文本中的位置,并且通常与文本颜色有所区别,以便用户能够清晰地看到光标的位置。

Select Color(选中颜色): 当InputField被选中(获取焦点)时的背景颜色。通常用于指示用户当前正在输入的字段。

Input Type(输入类型): 指定输入字段接受的类型,比如文本、整数、浮点数等。不同的输入类型可以限制用户输入的内容。

validation(验证规则): 指定用户输入的验证规则。通过设置验证规则,您可以确保用户输入的内容符合特定的格式或条件。这有助于确保数据的完整性和准确性,并提供更好的用户体验。

  1. None(无): 不执行任何验证,允许用户输入任何类型的文本。
  2. Integer(整数): 验证用户输入是否为整数。如果输入不是整数,则会显示错误。
  3. Decimal(浮点数): 验证用户输入是否为浮点数(即带有小数点的数字)。如果输入不是浮点数,则会显示错误。
  4. Alphanumeric(字母数字): 验证用户输入是否只包含字母和数字。如果输入包含其他字符,则会显示错误。
  5. Email Address(电子邮件地址): 验证用户输入是否符合电子邮件地址的格式。如果输入不是有效的电子邮件地址,则会显示错误。
  6. Custom(自定义): 可以编写自定义脚本来定义特定的验证规则。

Keyboard Type(键盘类型): 这是指定在移动设备上打开键盘时的键盘类型,例如默认键盘、数字键盘、电子邮件键盘等。这可以根据输入字段的内容类型进行调整。

Validation(验证): 这是指定输入字段中文本的验证规则。例如,可以验证文本是否是整数、浮点数、电子邮件地址等。

Character Limit(字符限制): 这是指定输入字段允许的最大字符数。超过此限制的字符将无法输入。

4.代码细节

以int为例

/// <summary>
///UIInput.cs
/// </summary>
public class UIInput : MonoBehaviour
{
    //UIInput中注册有onChange事件
    public List<EventDelegate> onChange = new List<EventDelegate>();
}
//监听inputLabel的onChange动作
EventDelegate.Add(this.inputLabel.onChange, OnLabelUpdate);
private void OnLabelUpdate()
{
    int num;
    string inputString = inputLabel.value;//获取输入的string值
    int.TryParse(inputString, out num);//更安全
    string formatedString = inputString;
    if (string.IsNullOrEmpty(inputString))
    {
        formatedString = "0";
    }

    num = Mathf.Clamp(num, 0, _maxSoldierSetoutCount);//这里限制了num的范围
    formatedString = num.ToString();
    if (!formatedString.Equals(inputString))
    {
        inputLabel.value = formatedString;
    }
    _currentUseSoldierCount = num;//当前需要显示的数值

    CheckReduceAndAdd();//刷新页面
}

本文转载自: https://blog.csdn.net/YIYIYAYA1124/article/details/136658647
版权归原作者 差点意思的鸭鸭 所有, 如有侵权,请联系我们删除。

“Unity基础知识笔记(三)——NGUI中的UIInput”的评论:

还没有评论