Unity3d C# 实现UGUI 输入框调用软键盘输入的完整功能(含工程源码,适用触屏一体机等)

Posted 十幺卜入

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d C# 实现UGUI 输入框调用软键盘输入的完整功能(含工程源码,适用触屏一体机等)相关的知识,希望对你有一定的参考价值。

前言

如题的需求经常会在甲方的需求中出现,比如一体机上,大多客户会不选择键盘和鼠标,因为觉得比较low的可能。自己弄一个内置UI键盘的话也是可行的,只不过可能就英文输入好实现,实现带中文的输入可能就比较难了,所以想到了一个中间的方式调用软键盘,可支持中文输入,目前的实现可能仅支持Windows系统。

效果

调起输入的效果:
在这里插入图片描述

支持中文的效果:

在这里插入图片描述

实现

搭建UI

UI搭建比较简单主要就是一个输入框(InputField),如图的搭建:

在这里插入图片描述

调起小键盘

直接使用Process.Start();来启动小键盘程序:

 proc = Process.Start(@"C:\\Windows\\System32\\osk.exe");

参数是小键盘运行程序的路劲。

关闭小键盘

我们在调起小键盘时记录了小键盘的process,关闭时将调用CloseMainWindow函数即可

proc.CloseMainWindow();

调起和关闭之间的输入环节和正常的物理键盘输入无异。

事件绑定

我们在输入结束是,通过输入结束事件将键盘关闭:

input.onEndEdit.AddListener(EditEnd);

这个直接使用了,输入框的结束编辑事件,比较方便就实现了。

用户在点击或者选中输入框时,调起小键盘,这个的实现需要借助EventTrigger来实现:

 et.triggers = new List<EventTrigger.Entry>();      // 新建委托列表
 EventTrigger.Entry Sel = new EventTrigger.Entry(); // 注册事件
 Sel.eventID = EventTriggerType.Select;             // 设置事件类型
 Sel.callback = new EventTrigger.TriggerEvent();    // 设置callback
 Sel.callback.AddListener(new UnityAction<BaseEventData>(OnSelectIpt)); // 事件绑定
 et.triggers.Add(Sel);

这里监听了选中事件(EventTriggerType.Select),理论上点击(EventTriggerType.PointerClick)应该也可以。

项目源码

https://download.csdn.net/download/qq_33789001/20381292

以上是关于Unity3d C# 实现UGUI 输入框调用软键盘输入的完整功能(含工程源码,适用触屏一体机等)的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 之UGUI 文本框和编辑框InputField

Unity3D 学习手记 - UGUI

Unity3d中UGUI组件精简复盘(十五)InputField组件

Unity3d中UGUI组件精简复盘(十五)InputField组件

Unity3D 之UGUI 滑动条(Slider)

unity3d的UGUI如何制作一个提示框?就是鼠标放上去会显示提示信息,最好用自带的UI系统