Unity WebGL 打不了中文?WebGLInput 5 分钟给输入框接上浏览器输入法
Unity WebGL 打不了中文WebGLInput 5 分钟给输入框接上浏览器输入法【免费下载链接】WebGLInputIME for Unity WebGL项目地址: https://gitcode.com/gh_mirrors/we/WebGLInputUnity WebGL 构建出来的网页里输入框点一下往往只能敲英文中文输入法上不了屏CtrlV 复制粘贴也没反应。WebGLInput 就是为这个问题写的 Unity WebGL 输入法插件它在你点中输入框时于浏览器里生成一个与输入框位置、宽度、字号完全对齐的 HTML 输入框把打进去的内容实时同步回 Unity 的 InputField 或 TextMesh Pro 输入框。适合刚拿到一个 WebGL 项目、发现玩家输不了密码就发愁的你全程不用写一行桥接代码。把 WebGLSupport 装进工程最省事的路径从项目 release 页面下载WebGLSupport.unitypackage在 Unity 菜单里选Assets → Import Package → Custom Package选中文件点 Import 即可。也可以在Window → Package Manager里通过仓库地址安装或者先执行git clone https://gitcode.com/gh_mirrors/we/WebGLInput把仓库中的Assets/WebGLSupport目录整体拷进你工程的 Assets 下。装完 Assets 里会多出一个 WebGLSupport 文件夹里面是 C# 组件和一份负责浏览器通信的 jslib 脚本后面所有功能都由它们驱动。把组件挂到 InputField 上的 3 步操作在场景里选中挂了InputFieldUGUI或TMP_InputFieldTextMesh Pro的那个 GameObject。在 Inspector 窗口点Add Component搜索WebGLInput并添加。到此为止默认参数就能跑官方文档原话是 no need to setting anything。唯一要注意的是组件必须和输入框组件在同一个对象上它是靠GetComponent找输入框的找不到会直接抛出 Can not Setup WebGLInput。挂完之后浏览器里点输入框时会生成一个隐藏的 HTML 输入框连密码框的打码、字符数上限都会从 Unity 侧同步过去。构建 WebGL在浏览器里真正输入中文把构建目标切到 WebGL用 Unity 自带的 WebGL 模板构建起个静态服务器打开页面。这时点输入框中文、日文等输入法正常上屏复制粘贴可用Tab 和 ShiftTab 按屏幕位置在多个输入框之间循环切焦点。有个现象容易吓到新手——编辑器里点输入框毫无反应这是设计使然组件在非 WebGL 平台会自动禁用自己所以一切以构建后的浏览器为准别在编辑器里怀疑人生。想让 Tab 插入制表符先开两个开关默认 Tab 负责切焦点。如果你的场景是代码编辑、文本排版这类需要真制表符的要在Project Settings → Player的Scripting Define Symbols里加上WEBGLINPUT_TAB再回到 WebGLInput 组件勾选Enable Tab Text。前者是编译开关、后者是运行时开关缺一不可只勾一个时功能看起来没生效其实是编译分支根本没进来。手机上和 UI Toolkit 里的实验性支持移动端标注为实验特性旧版本 TMP 输入框会由插件自动追加一个 WebGLInputMobile 组件来配合触摸事件唤起系统键盘Unity 2023.2 之后 TMP 已自带移动端输入插件会主动让位避免两套逻辑打架。UI Toolkit 是另一条路给每个 TextField 加一个 WebGLInputManipulator 就行工程里的 Sample 脚本就是现成示例。另外组件上有个Show Html Element开关勾上会把 HTML 输入框真正显示在画布上顺带获得拖拽选中文本的能力输入框很窄时也能用它强制对齐。踩坑速查现象原因处理浏览器里点了没反应构建的不是 WebGL 目标或 canvas 被网页其他元素盖住确认 Build Target 是 WebGL检查 index.html 上层元素启动报 Can not Setup WebGLInput组件和输入框不在同一对象上把 WebGLInput 挪到 InputField 所在 GameObjectTab 想插入 \t 没效果只勾了 Enable Tab Text忘了加 Define Symbol补上WEBGLINPUT_TAB后重新构建浏览器键盘位置没对准输入框默认隐藏模式下 HTML 输入框只有 1 像素高勾选Show Html Element输入框会实体化对齐手机上键盘弹不出来移动端是实验特性确认构建目标包含移动 WebGLTMP 建议升到 2023.2现在可以打开浏览器试着在输入框里输一行中文了。想继续深挖可以看项目 README 里关于全屏切换的说明或翻翻 WebGLInput.cs 里 OnFocus / OnBlur 那一段的源码注释。【免费下载链接】WebGLInputIME for Unity WebGL项目地址: https://gitcode.com/gh_mirrors/we/WebGLInput创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考