前言
如題的需求經常會在甲方的需求中出現,比如一體機上,大多客戶會不選擇鍵盤和滑鼠,因為覺得比較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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289698.html
標籤:其他
上一篇:Unity_加載頁面及進度條
