gxguixin123 Unity 发布的web GL 实现中文输入

24
回复
1118
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
331
昨日变化

81

主题

695

帖子

4082

积分

Rank: 9Rank: 9Rank: 9

UID
93357
好友
6
蛮牛币
20434
威望
0
注册时间
2015-4-18
在线时间
1456 小时
最后登录
2019-8-21

专栏作家认证开发者

QQ

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 gxguixin123 于 2019-8-15 17:28 编辑

Unity 发布的web GL 实现中文输入




近期,我遇到一个需求,在实现 Unity 发布的web GL 实现一个搜索框
必须能中文输入!
众所周知,Unity 对 web GL 支持很少,对中文输入的支持更是少
百度上的教程基本都是介绍这个插件




运行结果是这样的



运行结果让人大吃一惊,虽说是实现了中文输入的问题,但是弹出这么一个框
着实让人接受不了
不过它却提醒了我,
可以利用 html 原生元素,再跟 Unity 通信,就能完成中文输入!

Unity 发消息给 Html
[C#] 纯文本查看 复制代码
Application.ExternalCall(Js FunctionName, param,params ...);

Html 发消息给 Unity
[JavaScript] 纯文本查看 复制代码
SendMessage(Unity GameObj Name, FunctionName, param, param, ...);

(具体理论请自行百度,此处不做详述)

有了通信的基础后,我们准备在 发布后的 html文件 封装一个输入框的事件
[HTML] 纯文本查看 复制代码
 <div>
            <input type="text" id = "SearchBoxInputId" name = "SearchBoxInputId" style="visibility:hidden;" /> 
    </div>


这里,我们指明该输入框的id,且将其样式定义为隐藏, 并实现 "输入" 和 "失去焦点" 这两个重要方法

然后,在 JS 中分别实现以下方法:
方法名称 方法作用
触发事件 等待 Unity 传来触发指令,激活输入框,并赋予其焦点,使中文得以输入
OnInput (输入)将输入结果实时传回 Unity ,Unity 中可以处理
onblur (失去焦点) 鼠标点击输入框以外的位置都会自动触发此事件,此时将其隐藏,并通知 Unity


这样, html 就完成了对输入框的封装。-------------------------
接下来来弄 Unity 这边的实现

  • Unity 在 Inputfield 实现 PointDown 事件,即用户点击了输入框时,会首先触发该事件
  • 实现一个方法,专门监听来自 html 发来的字符串
  • 2 中的方法收到字符串后, 将 Inputfield 赋值,这样就会触发 Inputfield 的 OnValueChanged 事件,完成自己的需求
  • 实现一个方法,专门监听 html 的 onblur 事件, 流程结束!
  • 最重要的一点,unity 必须实现键盘锁定,否则在html 输入的时候会同时触发Unity 写好的快捷键事件  
    [C#] 纯文本查看 复制代码
    WebGLInput.captureAllKeyboardInput = false;


嗯,大概流程就结束了。

一个注意的是,Unity 自带的 Arial 字体并不支持中文,所以还得自己找一个中文字体文件
控制面板 --> 字体

不过这样调试也不方便, 每次都要先发布,再在发布后的 html 修改方法(因为重新方法后会被覆盖)
怎么解决?
Unity WebGL 可以使用自定义模板:点击此处


我们可以将其制作成自定义模板,这样每次发布后方法都在!
(或者您自行实现发布监听事件自动往body注入也行哈)

解决方案大概就是这么个实现思路
【备注: 目前这是最基础的实现思路,要是大佬们有更好的实现思路,烦请告知,多多交流,多多学习哈】

这是工程,象征性的收 5 个币,要是你确实没有币的,可以联系我下载哈 WebGL中文输入.txt (116 Bytes, 下载次数: 7, 售价: 5 蛮牛币)






5熟悉之中
727/1000
排名
3970
昨日变化

3

主题

93

帖子

727

积分

Rank: 5Rank: 5

UID
259967
好友
2
蛮牛币
591
威望
0
注册时间
2017-12-16
在线时间
245 小时
最后登录
2019-8-17

一贫如洗

沙发
2019-8-5 13:19:51 只看该作者
大佬666666666666
排名
9399
昨日变化
1

13

主题

219

帖子

1050

积分

Rank: 9Rank: 9Rank: 9

UID
21402
好友
16
蛮牛币
50
威望
0
注册时间
2014-4-14
在线时间
537 小时
最后登录
2019-8-20

认证开发者

板凳
2019-8-5 13:37:44 只看该作者
发布的时候监听发布完成事件 ,然后自动写入body 或者 jslib中直接动态生成吧!
6蛮牛粉丝
1181/1500
排名
2966
昨日变化

14

主题

205

帖子

1181

积分

Rank: 6Rank: 6Rank: 6

UID
159012
好友
1
蛮牛币
3217
威望
0
注册时间
2016-7-27
在线时间
464 小时
最后登录
2019-8-21
QQ
地板
2019-8-5 14:36:30 只看该作者
看起来还不错。
5熟悉之中
627/1000
排名
8747
昨日变化

0

主题

103

帖子

627

积分

Rank: 5Rank: 5

UID
236487
好友
0
蛮牛币
4792
威望
0
注册时间
2017-8-8
在线时间
388 小时
最后登录
2019-8-21
5#
2019-8-5 14:51:46 只看该作者
Unity 发布的web GL 实现中文输入
排名
64935
昨日变化

0

主题

30

帖子

81

积分

Rank: 2Rank: 2

UID
259926
好友
0
蛮牛币
174
威望
0
注册时间
2017-12-16
在线时间
49 小时
最后登录
2019-8-21
6#
2019-8-5 17:03:53 只看该作者
666666666666666666
7日久生情
2115/5000
排名
4092
昨日变化

0

主题

1391

帖子

2115

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蛮牛币
1915
威望
0
注册时间
2017-11-16
在线时间
362 小时
最后登录
2019-8-21
7#
2019-8-6 07:55:28 只看该作者
666666666666
5熟悉之中
657/1000
排名
16955
昨日变化

1

主题

250

帖子

657

积分

Rank: 5Rank: 5

UID
213085
好友
5
蛮牛币
506
威望
0
注册时间
2017-3-20
在线时间
366 小时
最后登录
2019-8-21
8#
2019-8-6 09:02:43 只看该作者
谢谢分享
5熟悉之中
802/1000
排名
4110
昨日变化

1

主题

270

帖子

802

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
984
威望
0
注册时间
2017-9-21
在线时间
171 小时
最后登录
2019-8-21
9#
2019-8-6 09:16:50 只看该作者
666666666666666
排名
26985
昨日变化

0

主题

17

帖子

65

积分

Rank: 2Rank: 2

UID
6227
好友
0
蛮牛币
3
威望
0
注册时间
2013-10-23
在线时间
34 小时
最后登录
2019-8-19
10#
2019-8-6 09:37:13 只看该作者
谢谢分享
排名
26985
昨日变化

0

主题

17

帖子

65

积分

Rank: 2Rank: 2

UID
6227
好友
0
蛮牛币
3
威望
0
注册时间
2013-10-23
在线时间
34 小时
最后登录
2019-8-19
11#
2019-8-6 09:39:31 只看该作者
谢谢分享
5熟悉之中
666/1000
排名
5115
昨日变化

0

主题

102

帖子

666

积分

Rank: 5Rank: 5

UID
284721
好友
1
蛮牛币
1445
威望
0
注册时间
2018-6-7
在线时间
282 小时
最后登录
2019-8-20
QQ
12#
2019-8-6 09:42:23 只看该作者
5熟悉之中
765/1000
排名
10706
昨日变化

0

主题

507

帖子

765

积分

Rank: 5Rank: 5

UID
301976
好友
1
蛮牛币
1140
威望
0
注册时间
2018-10-31
在线时间
160 小时
最后登录
2019-8-21
13#
2019-8-6 10:08:31 只看该作者
2初来乍到
141/150
排名
34887
昨日变化

0

主题

63

帖子

141

积分

Rank: 2Rank: 2

UID
133179
好友
2
蛮牛币
2
威望
0
注册时间
2015-12-31
在线时间
70 小时
最后登录
2019-8-14
14#
2019-8-6 10:12:01 只看该作者
大佬66666666666666
4四处流浪
448/500
排名
6777
昨日变化

7

主题

55

帖子

448

积分

Rank: 4

UID
165062
好友
1
蛮牛币
745
威望
0
注册时间
2016-8-31
在线时间
190 小时
最后登录
2019-8-19
15#
2019-8-6 11:12:41 只看该作者
很有用66666
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则