此方法适用于高版本的unity比如2017及以上
亲自使用过unity4.7版本的时候这个方式需要改进为将osk.exe拖进项目工程中Assets下,然后下面打开的路径也要换成相对应的路径,用方法二来举例
首先我们要知道如何打开软键盘
这里就打开Windows自带的一个软键盘,这个.exe程序一般位于C:\Windows\System32这个位置,当进入到这个文件夹的时候搜索osk.exe一般都有,打开就是软键盘
unity中如何通过代码调用打开Windows的软键盘
方法一:
using UnityEngine;
using System.Collections;
public class CallApplication : MonoBehaviour {
// Use this for initialization
void Start () {
Application.OpenURL (@"C:\Windows\System32\osk.exe");
}
}
方法二:
using UnityEngine;
using System.Collections;
using System.Diagnostics;
public class CallApplication : MonoBehaviour {
// Use this for initialization
void Start () {
Process.Start (@"C:\Windows\System32\osk.exe");
}
}
给InputField添加软键盘
首先我们知道InputField没有button组件所以无法点击,在我们没有键盘只有鼠标的情况下只有打开软键盘才能输入。所以现在我们要给InputField添加点击事件。
找到InputField给它添加一个EventTrigger组件并且通过EventTrigger组件添加一个Select事件
现在我们只需要在其他触发其他脚本中的方法就可以了
上面Select事件挂的方法就是SimulateKeyboardClick方法,当然下面这个脚本得找个对象挂着
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
using System.Diagnostics;
public class KeyboardSimulator : MonoBehaviour
{
public InputField inputField; // 拖拽需要输入的InputField到这个字段
public void SimulateKeyboardClick()
{
inputField.Select();
Application.OpenURL(@"C:\Windows\System32\osk.exe");
}
}
这时启动游戏点击 InputField就可以看到软键盘弹出来了