前言
上一章我们实现了“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
关注
打赏
热门博文
- Unity3d 插件着色器(Shader)报错Too many texture interpolators...和‘vert‘: output parameter ‘o‘ not ...修复记录
- Unity3d C# 网址url未转义问题(https%3A%2F%2F => https://)网址无法打开问题 URL is missing a protocol e.g. http://...
- Unity3d C# 使用Universal Media Player(ump)插件播放视频的众坑之无法播放视频和VLC播放器依赖的问题
- 软考高级软件架构风格定义以及分类
- Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程
- Unity3d 使用统一可寻址资产系统(Addressables)实现服务器资源热更新和资源版本管理等功能(含源码)
- Unity3d minigame-unity-webgl-transform插件转换微信小游戏报错To use dlopen, you need to use Emscripten‘s...问题
- Unity 利用Skybox Panoramic着色器制作全景图预览有条缝隙问题解决办法
- Unity3d C# 开发微信小游戏分享图片、朋友圈等功能实现(含源码)
- Unity3d Windows播放视频(视频流)功能组/插件支持对比