Unity WebView 插件⭐️(九)核心模块 键盘模块—Keyboard

举报
呆呆敲代码的小Y 发表于 2021/09/27 09:54:09 2021/09/27
【摘要】 📢前言该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏上一篇文章对3D WebView 插件的 Web 做了一个详细的介绍说明那本篇文章就来介绍下 Keyboard 键盘 的说明和使用方法 🔔核心模块 键盘模块—Keyboard一个 3D 屏幕键盘预制件,您可以连接到网络视图以进行打字。可以通过编辑器将 Keyboard.prefab 文件拖入场景中或通...

📢前言

该文章是WebView 插件系列文章,传送门:浏览器插件3D WebView专栏

上一篇文章对3D WebView 插件Web 做了一个详细的介绍说明

那本篇文章就来介绍下 Keyboard 键盘 的说明和使用方法

请添加图片描述


🔔核心模块 键盘模块—Keyboard

一个 3D 屏幕键盘预制件,您可以连接到网络视图以进行打字。

可以通过编辑器将 Keyboard.prefab 文件拖入场景中或通过编程调用Keyboard.Instantiate()来向场景中添加键盘。
要在Canvas 中使用,请参阅CanvasKeyboard。

键盘的用户界面是一个React.js应用程序,内部运行WebViewPrefab并发出消息,以C#当按下按键。 键盘 UI 是开源的,可在 GitHub 上获得。

键盘支持以下语言的布局,并根据操作系统的默认语言自动设置布局:英语、西班牙语、法语、德语、俄语、丹麦语、挪威语和瑞典语

很遗憾的是这个键盘不支持中文输入,这也是该插件最大的一个遗憾。不知道为嘛不给我们加上一个支持中文输入
难道老外学不好中文,连中文输入法也做不出来吗!!,感觉不是技术问题,就是单纯的不想加入中文输入


🎁Keyboard公共属性

在这里插入图片描述
1.初始分辨率
float InitialResolution
以每个 Unity 单位的像素为单位设置键盘的初始分辨率。您可以更改分辨率以使键盘的内容看起来更大或更小。

2.网络视图预制件
WebViewPrefab WebViewPrefab { get; }
获取用于键盘 UI 的 WebViewPrefab。


Keyboard公共方法

在这里插入图片描述
1.实例化
static Keyboard Instantiate(float width, float height)
使用指定的宽度和高度创建一个实例。

2.实例化
static Keyboard Instantiate()
使用默认宽度和高度创建一个实例。


Keyboard公共活动

在这里插入图片描述
1.已初始化
EventHandler Initialized
表示键盘完成初始化。

2.输入接收
EventHandler<EventArgs<string>> InputReceived
表示用户单击了键盘上的某个键。


🌲示例

1.在插件中使用该键盘进行输入的方法很简单,只需要将一下代码在初始化的时候执行一下即可

            // 连接屏幕键盘。
            var keyboard = GameObject.FindObjectOfType<Keyboard>();
            keyboard.InputReceived += (sender, eventArgs) => {
                Debug.Log("键盘输入:"+ eventArgs.Value);
                _webViewPrefab.WebView.HandleKeyboardInput(eventArgs.Value);
            };

2.创建一个WebView视图和Keyboard的预制体,完整例子

// First, create a WebViewPrefab for our main web content.
var webViewPrefab = WebViewPrefab.Instantiate(0.6f, 0.3f);
webViewPrefab.transform.parent = transform;
webViewPrefab.transform.localPosition = new Vector3(0, 0f, 0.4f);
webViewPrefab.transform.LookAt(transform);
webViewPrefab.Initialized += (sender, e) => {
    webViewPrefab.WebView.LoadUrl("https://www.google.com");
};

// Add the keyboard under the main webview.
var keyboard = Keyboard.Instantiate();
keyboard.transform.SetParent(webViewPrefab.transform, false);
keyboard.transform.localPosition = new Vector3(0, -0.31f, 0);
keyboard.transform.localEulerAngles = Vector3.zero;
// Hook up the keyboard so that characters are routed to the main webview.
keyboard.InputReceived += (sender, eventArgs) => {
    webViewPrefab.WebView.HandleKeyboardInput(eventArgs.Value);
};

💬总结

这个Keyboard键盘适用于在3D空间中使用,一般在3D空间中使用的都是VR设备使用偏多

主要是目前没有中文输入,使用的时候缺陷偏多,官方说后续可能会添加上,但是估计还早~

我们使用的时候只需要控制Keyboard键盘的位置大小,字符输入也只要添加上面示例中的监听即可!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。