Unity中如何给InputField添加软键盘

此方法适用于高版本的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就可以看到软键盘弹出来了

猜你喜欢

转载自blog.csdn.net/weixin_48195035/article/details/133177930