在VR开发中,如果遇到输入框,比如账号密码输入时,如果要求我们在VR程序中输入时,那么久需要用到虚拟键盘了。
在VRTK的示例项目中有自带的虚拟键盘,所以我们只需要对它进行一些修改,就可以使用了。
1.进入VRTK的LegacyExampleFiles文件夹下,打开第34个示例场景
找到示例中的虚拟键盘,然后复制到我们的场景中去,键盘由51个Button组成,在WorldKeyboard中,有一个键盘输入组件(只能输入设定好的字符串,没有拼音输入功能)
2.为按钮设置字符
因为Demo中都已经设置好了,所以直接使用他们之前的设置就好了
在预制件之前的脚本中,会有一个默认的输入框,我们点击这些键后,会默认输入到他之前的输入框中去,所以我们现在只需要将他的目标输入框改变成我们需要的那个就好了
添加一个改变他目标输入框的方法,并且将他Start方法中为Input默认赋值的脚本给注释掉,这样的话input就默认为null,当我们点击输入的时候就会报错,所以我们先将键盘隐藏起来
新建一个InputField,然后为它添加一个EventTigger组件
点击AddNewEventType,然后选择PointerDown或者PointerClick,接着为它添加事件
1.打开键盘(键盘显示)
2.切换键盘的输入目标(UseSwitchInputField),将我们要使用的输入框拖入进去,也就是这个对象本身。
当输入完成后,点击Enter键
将目标清空,将键盘隐藏
注意:InputField的事件OnEndEdit不会在我们点击Enter后触发,所以两个解决方法
1.在输入框后面放一个确认按钮,将在输入完成后要做的事情写进去
2.点击别的输入框