技术标签: # 游戏研发客户端实习日记 小程序 unity 游戏开发 小游戏 微信游戏
Unity小游戏引入微信以后,没有办法唤起输入法,比如游戏中玩家需要自定义姓名的时候,点击输入框无法打开系统输入法。
解决的办法是引入WX_SDK中提供的方法来唤醒输入法,并需要进行简单的逻辑修改进行适配。

比如NameInput是一个UGUI组件,控制着游戏玩家自定义姓名,为该组件添加一个脚本,并传入一个NameInput组件,具体看这个组件是什么类型,我这里是TMP_InputField。

using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using WeChatWASM;
public class TextInput : MonoBehaviour, IPointerClickHandler, IPointerExitHandler
{
public TMP_InputField input;
public void OnPointerClick(PointerEventData eventData)
{
// 监听点击事件唤起微信输入法
WX.ShowKeyboard(new WXShowKeyboardParam()
{
// 这里的参数根据需要自行设置
// 参考https://developers.weixin.qq.com/minigame/dev/api/ui/keyboard/wx.showKeyboard.html
defaultValue = input.text,
maxLength = 20,
confirmType = "done"
});
//绑定回调
WX.OnKeyboardConfirm(OnConfirm);
WX.OnKeyboardComplete(OnComplete);
}
public void OnPointerExit(PointerEventData eventData)
{
// 隐藏输入法
if (!input.isFocused)
{
WX.HideKeyboard();
//删除掉相关事件监听
WX.OffKeyboardInput(OnInput);
WX.OffKeyboardConfirm(OnConfirm);
WX.OffKeyboardComplete(OnComplete);
}
}
public void OnInput(string v)
{
if (input.isFocused)
{
}
}
public void OnConfirm(string v)
{
// 输入法confirm回调
if (input.isFocused)
{
input.text = v;
}
}
public void OnComplete(string v)
{
// 输入法complete回调
if (input.isFocused)
{
input.text = v;
}
}
}
补充:唤醒输入法ShowKeyboard()里的参数根据需要自行设置
参考微信官方文档:https://developers.weixin.qq.com/minigame/dev/api/ui/keyboard/wx.showKeyboard.html
小游戏地址https://mp.weixin.qq.com/debug/wxagame/dev/index.html?t=201832 文件结构 小游戏只有以下两个必要文件: ├── game.js └── game.json game.js 小游戏入口文件 game.json 配置文件 配置 小游戏开发者通过在根目录编写一个 game.json 文件进行配置,开发者工具和客户端需要读取这个配置,...
微信网页里面,需要输入的时候,键盘弹出,然后底部的东西会被遮挡,resize事件捕捉不到,window高度也捕捉不到? 解决: 目前这种情况只有安卓机器会发生,可以采用如下方式进行处理,在点击输入框的时候,先判断是否是安卓的机器,然后采用延时机制让页面再搞上去。...
...
文章目录 前言 一、下载微信小游戏转换工具 1.Unity-MiniGame的项目地址 2.下载插件 二、使用插件构建项目并转换成小游戏 1.导入插件 2.转换设置 3.转换完成后的工作 4.打开微信小游戏项目 前言 之前我们已经成功打包除了WebGL,并且运行了 接下来我们就要开始转微信小游戏了 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载微信小游戏转换工具 1.Unity-Mini...
解决unity发布exe在win7电脑上部显示输入法的问题。 ...
Dialog如果带Edittext 等输入控件,Android其实已经默认弹出输入法了。 延时弹出没用,延时弹出没用,延时弹出没用,延时弹出没用 网络上其他不弹出的情况, 1.低版本可能不兼容,需要强制弹出 InputMethodManager m = (InputMethodManager) editText.getContext().getSystemServ...
卸载重装code: 如果还是不行,就重新安装搜狗输入法吧,安装教程参考:https://blog.csdn.net/weixin_41194129/a0...
1、修改字符编码格式 【file】===>【setting】==> 【editor] ===> 【file encodings】设置为utf-8 2、修改python文件的默认编码格式 【file】===>【setting】==> 【editor] ===> 【file and code templates】然后点击Pyhon Script 添加一下...
如果你新建一个名为“dictionary”的文本文档,就按下面样子加.txt 如果本来就是名为“dictionary。txt”,那就要再加.txt 苦苦折腾了许久,为什么就是打不开文件? 就是这个小问题。...
WEB应用是开放的,WEB前端代码也是公开的,和后端交互的接口如果没有经过特殊处理(加密/token),那么就是裸露的,只要知道api地址,那么就能随便获取应用数据。这样应用数据就很容易被人爬取或者恶意盗刷,典型的短信被恶意盗刷。 公司理财产品的短信接口就是一个裸接口,只要手机号就可以任意盗刷,当然背后有根据手机号,ip地址做了请求限制,但还是不够。后面就加了一定时间内一定请求次数的Token,后...