已知unity的inputdield(tmp)的contenttype为password,怎么获取它的text
时间: 2023-06-19 12:06:00 浏览: 89
如果 Unity 的 InputField 组件的 ContentType 被设置为 Password,那么无论用户输入什么字符,都会以“*”或者圆点的形式显示在屏幕上。这是为了保护密码的安全性。因此,不能直接从 InputField 的 Text 属性获取密码明文。
如果你需要获取密码明文,可以通过以下方法来实现:
1. 在 InputField 组件上设置 ContentType 为 Standard,这样用户输入的字符就会正常显示在屏幕上。
2. 在代码中获取 InputField 组件,并使用 PasswordChar 属性将显示字符设置为普通字符,例如:
```
InputField inputField = GetComponent<InputField>();
inputField.contentType = InputField.ContentType.Standard;
inputField.inputType = InputField.InputType.Password;
inputField.caretPosition = inputField.text.Length;
inputField.selectionAnchorPosition = inputField.text.Length;
inputField.selectionFocusPosition = inputField.text.Length;
inputField.transform.GetChild(1).GetComponent<Text>().supportRichText = false;
inputField.transform.GetChild(1).GetComponent<Text>().fontStyle = FontStyle.Normal;
inputField.transform.GetChild(1).GetComponent<Text>().text = inputField.text;
```
3. 在代码中获取 InputField 的 Text 属性,即可获取密码明文。
```
string password = inputField.text;
```
需要注意的是,获取密码明文可能会存在安全风险,因此在实际开发中应该根据实际情况进行权衡。