我知道如何使用InputMethodManager
隐藏或显示虚拟键盘。
但我想使用物理键盘在EditText
中输入文字,但我不想在Unity 3D Android中显示虚拟键盘。
我怎么能在Unity 3D中做到这一点?
答案 0 :(得分:4)
Unity中没有EditText
这样的东西。 InputField
用于接收来自设备的输入。
您可以在Android上使用InputField
停用虚拟关键字。不确定这是否适用于其他平台。
您的输入字段:
public InputField inputField;
禁用虚拟键盘:
inputField.keyboardType = (TouchScreenKeyboardType)(-1);
启用虚拟键盘:
inputField.keyboardType = TouchScreenKeyboardType.Default;
如果您遇到奇怪的问题,请考虑从InputField
派生您的脚本,然后停用虚拟键盘,最后调用Start
的基本InputField
功能:
public class HideVirtualKeyboard : InputField
{
protected override void Start()
{
keyboardType = (TouchScreenKeyboardType)(-1);
base.Start();
}
}
答案 1 :(得分:0)
老问题我知道,但您真正想要的是设置 inputField.touchScreenKeyboard.active = false;
您可能需要在 LateUpdate
中将其设为 false
[SerializeField]
private bool keyboardEnabled = true;
// toggle this to toggle native keyboard activity
public bool KeyboardEnabled { get { return keyboardEnabled; } set { keyboardEnabled = value; } }
private void LateUpdate()
{
#if UNITY_ANDROID
if (inputField.touchScreenKeyboard != null && !keyboardEnabled)
{
inputField.touchScreenKeyboard.active = false;
}
#endif
}