前言
上一章我们实现了“Unity3d C# 实现UGUI 输入框调用软键盘输入的完整功能(含工程源码,适用触屏一体机等)”,该方式只适用于Windows平台,目前是win10上测试的,其它系统环境待测试而且极可能是不可用的。就进行内置键盘的开发,但目前仅支持英文输入,后续可能会尝试中文输入,但是目前还有一定的难度和限制。
中文离线输入法已实现 https://blog.csdn.net/qq_33789001/article/details/119329690
效果调起键盘效果:
取消输入:
大小写切换:
实现的方法重点在搭建UI,因为键盘的按键还是较多,我这边稍作了一点整理,主要参照手机的输入法键盘布局方式,没有了实体的F1–F12、Alt、Ctrl、Win等按钮,增加了清空、取消、确认等功能按钮。
UI搭建搭建的最终效果:
只不过通用的按钮是通过按钮的预制体动态加载生成的,包括键值的设置也是动态进行。 先按每行设定了按钮的值数组:
private string[][] Line0_KeyValue = {
new string[]{"`","1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "="},
new string[]{"·", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+" }};
private string[][] Line1_KeyValue = {
new string[]{"q","w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\"},
new string[]{"Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "{", "}", "|" }};
private string[][] Line2_KeyValue = {
new string[]{"a","s", "d", "f", "g", "h", "j", "k", "l", ";", "'"},
new string[]{"A", "S", "D", "F", "G", "H", "J", "K", "L", ":", "\""}};
private string[][] Line3_KeyValue = {
new string[]{"z","x", "c", "v", "b", "n", "m", ",", ".", "/"},
new string[]{"Z", "X", "C", "V", "B", "N", "M", "", "?"}};
每个键的值有两个,shift按钮切换。
根据上面的值初始化按键:
//初始化按钮
private void InitComBtn()
{
InstantLineComBtns(Line0, Line0_KeyValue);
InstantLineComBtns(Line1, Line1_KeyValue);
InstantLineComBtns(Line2, Line2_KeyValue);
InstantLineComBtns(Line3, Line3_KeyValue);
}
//按行实例化按钮
private void InstantLineComBtns(Transform LineTran,string[][] KeyValues)
{
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?