当前位置: 首页 > news >正文

Unity导出微信小游戏后无法调起移动端输入框

参考官方demo 参考demo https://gitee.com/wechat-minigame/minigame-unity-webgl-transform/tree/main/Demo/API_V2
里面有对输入文本框适配的处理方法,还有一些其他功能展示

1 使用Unity打开/Demo/API目录,API示例开发版本为Unity 2022.3.14f1。
2 若Unity为2020及以前(如2019)版本,则需要在/Assets/Scripts/Editor/PreBuildProcessing.cs中配置Python环境变量。
3 点击"工具栏——微信小游戏——转换小游戏",填写自己的游戏AppID并设置导出路径,以及设置其他导出选项,之后点击"生成并转换"。
使用微信开发者工具打开导出路径/minigame。

找到脚本 WXInputFieldTmpAdapter,复制到自己项目中
在文本输入组件上面挂载改脚本即可调起输入框

using UnityEngine;
using WeChatWASM;
using TMPro;
using UnityEngine.EventSystems;// 要求该组件必须附加 TMP_InputField 组件
[RequireComponent(typeof(TMP_InputField))]
public class WXInputFieldTmpAdapter : MonoBehaviour, IPointerClickHandler, IPointerExitHandler
{private TMP_InputField _inputField; // 存储 TMP_InputField 组件的引用private bool _isShowKeyboard = false; // 标记键盘是否显示private void Start(){// 获取挂载在同一游戏对象上的 TMP_InputField 组件_inputField = GetComponent<TMP_InputField>();}// 当指针点击该组件时调用public void OnPointerClick(PointerEventData eventData){ShowKeyboard(); // 显示键盘}// 当指针离开该组件时调用public void OnPointerExit(PointerEventData eventData){// 如果 TMP_InputField 没有被聚焦,则隐藏键盘if (!_inputField.isFocused){HideKeyboard();}}// 输入法输入回调private void OnInput(OnKeyboardInputListenerResult v){// 如果 TMP_InputField 被聚焦,则将输入值赋给 TMP_InputFieldif (_inputField.isFocused){_inputField.text = v.value;}}// 输入法确认回调private void OnConfirm(OnKeyboardInputListenerResult v){HideKeyboard(); // 隐藏键盘}// 输入法完成回调private void OnComplete(OnKeyboardInputListenerResult v){HideKeyboard(); // 隐藏键盘}// 显示键盘的方法private void ShowKeyboard(){// 如果键盘已经显示,则直接返回if (_isShowKeyboard) return;// 调用 WeChat API 显示键盘WX.ShowKeyboard(new ShowKeyboardOption(){defaultValue = _inputField.text,//传入当前文本作为默认值maxLength = 20, // 最大输入长度confirmType = "go" // 确认按钮类型});// 绑定键盘事件回调WX.OnKeyboardConfirm(this.OnConfirm);WX.OnKeyboardComplete(this.OnComplete);WX.OnKeyboardInput(this.OnInput);_isShowKeyboard = true; // 更新键盘显示状态}// 隐藏键盘的方法private void HideKeyboard(){// 如果键盘未显示,则直接返回if (!_isShowKeyboard) return;// 调用 WeChat API 隐藏键盘WX.HideKeyboard(new HideKeyboardOption());// 移除事件监听WX.OffKeyboardInput(this.OnInput);WX.OffKeyboardConfirm(this.OnConfirm);WX.OffKeyboardComplete(this.OnComplete);_isShowKeyboard = false; // 更新键盘显示状态}
}

在这里插入图片描述

相关文章:

  • window 凭据管理器密码破解
  • 信息科技伦理与道德0:课程安排
  • 如何实现“一机两用” 寻求安全与效率的完美平衡
  • 从 SolarWinds 事件看 CCRC 认证的供应链安全价值
  • 盈达科技GEO技术体系全景解密:AIM³ Pro × AICC × GEO-BENCH Pro构建认知主权堡垒​
  • 15、stack、queue、deque的模拟实现
  • windows使用docker-desktop安装milvus和可视化工具attu
  • TA学习之路——2.2 模型与材质基础
  • 冒泡与 qsort 排序策略集
  • #Linux内存管理# 为用户进程分配物理内存,分配掩码应该选用GFP_KERNEL,还是GFP_HIGHUSER_MOVABLE呢?
  • 蓝桥杯日期的题型
  • Ubuntu中snap
  • 【LangChain核心组件】Callbacks机制深度剖析与实战指南
  • WPF 使用 DI EF CORE SQLITE
  • H.265硬件视频编码器xk265代码阅读 - 帧内预测
  • K8S微服务部署及模拟故障观测
  • 优化IDEA2024.3大型项目启动慢
  • 网络安全与信息安全防护措施
  • 基于stm32的手机无线充电研究
  • iOS崩溃堆栈分析
  • 深圳龙岗做网站公司/企业培训体系
  • 专门做代工产品的网站/四川seo排名
  • 网站制作公司承担/短视频平台推广
  • 济宁网站建设平台/百度app下载安装官方免费版
  • 网上购物商城网站建设/成都seo培
  • 响水网站建设公司/seo培训教程