Unity WebGL中文输入支持
Unity WebGL 的中文输入,说难也不难,说简单也有点坑,是当你第一次搞这个需求。原生的 InputField 在 WebGL 下用起来确实挺受限,连中文输入都整不起来。要,就得绕点弯,借助 JavaScript 和 HTML DOM 来打个配合。
思路其实不复杂:模拟一个 HTML 的 <input>
输入框,覆盖在 Unity 画布上,用 JS interop 和 Unity 后台通信,把输入值实时同步回 C#。关键代码就是这段:
htmlInput.addEventListener('input', function(event) {
Unity.call('setInputValue', event.target.value);
});
C# 那边暴露一个方法接收就行,用 [JSInvokable]
标记上,数据一来就写回 InputField。这样就能实现中文输入了,拼音、选字全流程都通的。
啦,这方案也不是,尤其在不同浏览器下,兼容性多少有点变数。像 Safari、Edge,位置计算会出点偏差,移动端体验也得另想办法。所以,建议你测试的时候广撒网,多跑几个平台。
如果你懒得自己造轮子,也可以去看看现成插件:Unity WebGL 中文输入插件 这个还不错。实在不行,直接用原生 HTML 页面做输入界面,再把数据传进 Unity,简单粗暴但稳定。
如果你也在做 WebGL 项目,正好碰上要支持中文输入,那这个方法可以试试。嗯,别忘了同步输入时注意节流,不然用户一边打字,Unity 一边卡帧,可就不太妙了。
5.63MB
文件大小:
评论区