代码先锋网 代码片段及技术文章聚合

关于Unity微信小游戏输入法无法唤醒的问题

技术标签: # 游戏研发客户端实习日记  小程序  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

版权声明:本文为wankcn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wankcn/article/details/110424206

智能推荐

微信小游戏

小游戏地址https://mp.weixin.qq.com/debug/wxagame/dev/index.html?t=201832 文件结构 小游戏只有以下两个必要文件: ├── game.js └── game.json game.js 小游戏入口文件 game.json 配置文件 配置 小游戏开发者通过在根目录编写一个 game.json 文件进行配置,开发者工具和客户端需要读取这个配置,...

解决微信底部弹出输入法遮挡页面

微信网页里面,需要输入的时候,键盘弹出,然后底部的东西会被遮挡,resize事件捕捉不到,window高度也捕捉不到? 解决: 目前这种情况只有安卓机器会发生,可以采用如下方式进行处理,在点击输入框的时候,先判断是否是安卓的机器,然后采用延时机制让页面再搞上去。...

用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#1.3 转换成微信小游戏

文章目录 前言 一、下载微信小游戏转换工具 1.Unity-MiniGame的项目地址 2.下载插件 二、使用插件构建项目并转换成小游戏 1.导入插件 2.转换设置 3.转换完成后的工作 4.打开微信小游戏项目 前言 之前我们已经成功打包除了WebGL,并且运行了 接下来我们就要开始转微信小游戏了 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载微信小游戏转换工具 1.Unity-Mini...

解决unity发布exe在win7电脑上部显示输入法的问题

解决unity发布exe在win7电脑上部显示输入法的问题。  ...

猜你喜欢

Android Dialog无法弹出输入法问题

Dialog如果带Edittext 等输入控件,Android其实已经默认弹出输入法了。 延时弹出没用,延时弹出没用,延时弹出没用,延时弹出没用 网络上其他不弹出的情况, 1.低版本可能不兼容,需要强制弹出  InputMethodManager m = (InputMethodManager)  editText.getContext().getSystemServ...

完美解决ubuntu系统的中文输入法无法写入VS Code的问题

卸载重装code: 如果还是不行,就重新安装搜狗输入法吧,安装教程参考:https://blog.csdn.net/weixin_41194129/a0...

解决pycharm中无法显示中文输入法的问题

1、修改字符编码格式 【file】===>【setting】==> 【editor] ===> 【file encodings】设置为utf-8 2、修改python文件的默认编码格式 【file】===>【setting】==> 【editor] ===> 【file and code templates】然后点击Pyhon Script  添加一下...

C语言文件操作-总是打不开文本文档

如果你新建一个名为“dictionary”的文本文档,就按下面样子加.txt 如果本来就是名为“dictionary。txt”,那就要再加.txt 苦苦折腾了许久,为什么就是打不开文件? 就是这个小问题。...

给裸接口加一道防护,避免恶意盗刷和爬取

WEB应用是开放的,WEB前端代码也是公开的,和后端交互的接口如果没有经过特殊处理(加密/token),那么就是裸露的,只要知道api地址,那么就能随便获取应用数据。这样应用数据就很容易被人爬取或者恶意盗刷,典型的短信被恶意盗刷。 公司理财产品的短信接口就是一个裸接口,只要手机号就可以任意盗刷,当然背后有根据手机号,ip地址做了请求限制,但还是不够。后面就加了一定时间内一定请求次数的Token,后...