Unity组件讲解 Input Field
咱就是说,Unity组件这么多,有多少是我们敢很自信的讲出它的所有用法和功能的,呦呦~开始思考了,书到用时方恨少,有些时候用到是时候,真是急得上网查了个遍,最后还没找到。害。。。
提示:内容纯个人编写,欢迎评论点赞,来指正我。
前言
本篇内容主要讲Unity组件之 InputField 输入框简单用法和遇到的一些坑,以及一些平常不注意到的功能。
下面让我们出发吧 ------------>----------------->
一、Input Field 是什么?
Input Field 是Unity 3D的一个组件,该组件主要是为用户提供输入框,可自主输入内容。
二、Input Field 基础功能介绍
1.组件功能
- 默认组件状态就是酱紫的,我没动任何东西哦,unity版本是2019.4.12f1 开始基础功能介绍。
– Interactable : 表示组件是否禁用,默认勾选,代表不禁用。取消勾选,代表禁用该组件 –Transititon :表示该组件的点击状态切换,包括颜色、图片、动画切换。类似Button组件 –Navigation、Text Component、Text :这些跳过,默认设置即可 –Character Limit :表示限制输入的字数,默认为0,代表字数不限 –Content Type :表示输入内容的类型,是一个限制型功能 ===Standard :默认不限制输入任何字符 === Integer Number :表示只能输入阿拉伯数字整数 ===Decimal Number :表示可以输入小数 ===Alphanumeric :表示只能输入字母和阿拉伯数字 ===Name :表示可以输入字母和汉字,可用作名字 ===Email Address :表示只能输入网址和符号,例如www.abcd.com ===Password :表示输入的是带 * 的密码,输入内容类型不限 ===Pin :表示表示输入的是带 * 的密码,输入内容只能是阿拉伯数字 ===Custom :表示自定义输入类型和输入设备类型,不做多介绍了 –Caret Blink Rate :表示输入停止线的闪烁速度,从左到右,速度从慢到快 –Caret Width :表示输入停止线的线条粗细程度,从左到右,线条从细到粗 –Custom Caret Color :表示自定义停止线的颜色,勾选后可自己定义 ===Caret Color :表示停止线的颜色 ===Selection Color :表示选中输入的内容时,内容的颜色 –Hide Mobile Input :表示隐藏手机输入 –Read Only :表示禁止输入,只能读取,不能输入内容
2.基础 API 使用
代码如下:
using UnityEngine;
using UnityEngine.UI;
public class UiManager : MonoBehaviour
{
public InputField inputField;
private void Start()
{
Debug.Log("读取输入框内容:" + inputField.text);
inputField.text = "小姐姐";
Debug.Log("读取是否禁用状态:" + inputField.interactable);
inputField.interactable = true;
Debug.Log("读取是否正在输入状态:" + inputField.isFocused);
Debug.Log("读取输入框字数限制值:" + inputField.characterLimit);
inputField.characterLimit = 5;
Debug.Log("读取输入内容类型:" + inputField.contentType);
inputField.contentType = InputField.ContentType.Standard;
Debug.Log("读取自定义停止线状态:" + inputField.customCaretColor);
inputField.customCaretColor = true;
Debug.Log("读取停止线的颜色值:" + inputField.caretColor);
inputField.caretColor = Color.red;
Debug.Log("读取输入框选中内容的颜色值:" + inputField.selectionColor);
inputField.selectionColor = Color.blue;
Debug.Log("读取停止线的位置下标:" + inputField.caretPosition);
inputField.caretPosition = 2;
Debug.Log("读取停止线闪烁速度数值:" + inputField.caretBlinkRate);
inputField.caretBlinkRate = 2;
Debug.Log("读取停止线宽度数值:" + inputField.caretWidth);
inputField.caretWidth = 5;
inputField.onValueChanged.AddListener(delegate { OnValueChanged(); });
inputField.onEndEdit.AddListener(delegate { OnEndEdit(); });
inputField.ActivateInputField();
inputField.DeactivateInputField();
}
private static void OnValueChanged()
{
Debug.Log("输入框数值变化了");
}
private static void OnEndEdit()
{
Debug.Log("输入完毕");
}
}
- 以上为基础API调用的基本内容,基本满足日常开发使用。
3.输入框失焦问题
inputField.ActivateInputField();
inputField.DeactivateInputField();
总结
提示:重点是失焦问题,其实也是最简单的问题,Unity库封装好的方法。
- 遇到PC端软件点击软件空白处导致输入框失焦的情况可以参考以上方法。
重点是解决方法,遇到问题要有耐心。
点赞收藏加关注哦~ 蟹蟹
|