Unity UI之输入框内容是否密码显示点击立即生效
1、打开Unity,新建一个空工程,具体如下图

2、在场景中添加一个 InputField 和 一个 Toggle,一个用来输入内容,一个用来控制内容显示形式,具体如下图

3、在工程中添加一个脚本,双击或者右键打开脚本,进行编辑,具体如下图

4、脚本的设置两个变量,用来添加 InputField 和 Toggle ,然后添加 Toggle 监听事件,用来控制 InputField 的内容显示形式,具体如下图

5、脚本编译正确后,回到Unity,把脚本挂载到 Canvas 上,并且对应把 InputField 和 Toggle 赋值上去,具体如下图

6、运行场景,在输入框中输入内容,然后点击取消显示密码,但是输入框中,没有立即更新,而是再次选中的时候才更新,具体如下图


7、在回到脚本中,在Toggle监听事件中,添加toggle.select(),具体如下图

8、脚本具体内容如下:
using UnityEngine;
using UnityEngine.UI;
public class InputFieldAndToggle : MonoBehaviour {
// 输入框 和 Toggle 的参数
public InputField inputField;
public Toggle toggle;
// Use this for initialization
void Start () {
// 给 toggle 添加监听事件
toggle.onValueChanged.AddListener(ToggleEvent);
}
/// <summary>
/// 选中显示,未选中则密码形式显示显示输入内容
/// </summary>
/// <param name="isOn">toggle 的选中与否</param>
private void ToggleEvent(bool isOn) {
inputField.contentType = isOn ? InputField.ContentType.Standard : InputField.ContentType.Password;
// 让输入框被选中
inputField.Select();
}
}
9、回到Unity,运行场景,即可在点击的Toggle的时候,立即更新输入框中的输入内容显示形式,具体如下图
