找回密码
 注册帐号

扫一扫,访问微社区

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

24
回复
1718
查看
[ 复制链接 ]
排名
331
昨日变化

85

主题

727

帖子

4215

积分

Rank: 9Rank: 9Rank: 9

UID
93357
好友
6
蛮牛币
21016
威望
0
注册时间
2015-4-18
在线时间
1553 小时
最后登录
2019-12-14

专栏作家认证开发者

QQ
2019-8-5 13:12:19 显示全部楼层 阅读模式

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

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

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

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

InputCNInWebGL.gif


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

20171222160729307.png


运行结果是这样的
微信图片_20190805121210.jpg


运行结果让人大吃一惊,虽说是实现了中文输入的问题,但是弹出这么一个框
着实让人接受不了
不过它却提醒了我,
可以利用 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, 下载次数: 11, 售价: 5 蛮牛币)
回复

使用道具 举报

5熟悉之中
745/1000
排名
3972
昨日变化

3

主题

97

帖子

745

积分

Rank: 5Rank: 5

UID
259967
好友
3
蛮牛币
600
威望
0
注册时间
2017-12-16
在线时间
259 小时
最后登录
2019-12-2
2019-8-5 13:19:51 显示全部楼层
大佬666666666666
回复 支持 反对

使用道具 举报

排名
9400
昨日变化

13

主题

230

帖子

1142

积分

Rank: 9Rank: 9Rank: 9

UID
21402
好友
16
蛮牛币
89
威望
0
注册时间
2014-4-14
在线时间
618 小时
最后登录
2019-12-14

认证开发者

2019-8-5 13:37:44 显示全部楼层
发布的时候监听发布完成事件 ,然后自动写入body 或者 jslib中直接动态生成吧!
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1285/1500
排名
2967
昨日变化

14

主题

217

帖子

1285

积分

Rank: 6Rank: 6Rank: 6

UID
159012
好友
1
蛮牛币
3905
威望
0
注册时间
2016-7-27
在线时间
556 小时
最后登录
2019-12-9
QQ
2019-8-5 14:36:30 显示全部楼层
看起来还不错。
回复

使用道具 举报

5熟悉之中
780/1000
排名
8748
昨日变化

0

主题

155

帖子

780

积分

Rank: 5Rank: 5

UID
236487
好友
0
蛮牛币
5470
威望
0
注册时间
2017-8-8
在线时间
489 小时
最后登录
2019-12-13
2019-8-5 14:51:46 显示全部楼层
Unity 发布的web GL 实现中文输入
回复 支持 反对

使用道具 举报

3偶尔光临
158/300
排名
64938
昨日变化

0

主题

33

帖子

158

积分

Rank: 3Rank: 3Rank: 3

UID
259926
好友
0
蛮牛币
456
威望
0
注册时间
2017-12-16
在线时间
124 小时
最后登录
2019-12-12
2019-8-5 17:03:53 显示全部楼层
666666666666666666
回复 支持 反对

使用道具 举报

7日久生情
2553/5000
排名
4094
昨日变化

0

主题

1770

帖子

2553

积分

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

UID
254705
好友
1
蛮牛币
2292
威望
0
注册时间
2017-11-16
在线时间
421 小时
最后登录
2019-12-13
2019-8-6 07:55:28 显示全部楼层
666666666666
回复

使用道具 举报

5熟悉之中
728/1000
排名
16957
昨日变化

1

主题

284

帖子

728

积分

Rank: 5Rank: 5

UID
213085
好友
5
蛮牛币
627
威望
0
注册时间
2017-3-20
在线时间
403 小时
最后登录
2019-12-11
2019-8-6 09:02:43 显示全部楼层
谢谢分享
回复

使用道具 举报

5熟悉之中
884/1000
排名
4112
昨日变化

1

主题

321

帖子

884

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
1079
威望
0
注册时间
2017-9-21
在线时间
202 小时
最后登录
2019-12-5
2019-8-6 09:16:50 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

2初来乍到
129/150
排名
26988
昨日变化

0

主题

21

帖子

129

积分

Rank: 2Rank: 2

UID
6227
好友
0
蛮牛币
206
威望
0
注册时间
2013-10-23
在线时间
95 小时
最后登录
2019-12-13
2019-8-6 09:37:13 显示全部楼层
谢谢分享
回复

使用道具 举报

2初来乍到
129/150
排名
26988
昨日变化

0

主题

21

帖子

129

积分

Rank: 2Rank: 2

UID
6227
好友
0
蛮牛币
206
威望
0
注册时间
2013-10-23
在线时间
95 小时
最后登录
2019-12-13
2019-8-6 09:39:31 显示全部楼层
谢谢分享
回复

使用道具 举报

5熟悉之中
702/1000
排名
5116
昨日变化

0

主题

108

帖子

702

积分

Rank: 5Rank: 5

UID
284721
好友
1
蛮牛币
1602
威望
0
注册时间
2018-6-7
在线时间
313 小时
最后登录
2019-12-13
QQ
2019-8-6 09:42:23 显示全部楼层
回复

使用道具 举报

6蛮牛粉丝
1074/1500
排名
10708
昨日变化

0

主题

777

帖子

1074

积分

Rank: 6Rank: 6Rank: 6

UID
301976
好友
1
蛮牛币
1590
威望
0
注册时间
2018-10-31
在线时间
199 小时
最后登录
2019-12-13
2019-8-6 10:08:31 显示全部楼层
回复

使用道具 举报

2初来乍到
144/150
排名
34890
昨日变化

0

主题

64

帖子

144

积分

Rank: 2Rank: 2

UID
133179
好友
2
蛮牛币
1
威望
0
注册时间
2015-12-31
在线时间
72 小时
最后登录
2019-10-24
2019-8-6 10:12:01 显示全部楼层
大佬66666666666666
回复 支持 反对

使用道具 举报

5熟悉之中
656/1000
排名
6777
昨日变化

16

主题

109

帖子

656

积分

Rank: 5Rank: 5

UID
165062
好友
2
蛮牛币
582
威望
0
注册时间
2016-8-31
在线时间
335 小时
最后登录
2019-12-12
2019-8-6 11:12:41 显示全部楼层
很有用66666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则