【Unity开发小技巧】UnityWebGL移动端和电脑端调起输入法,中文输入处理

目录

一.TextMesh Pro中文显示问题

1.PC端和移动端中文显示异常乱码(解决方案)

1.制作TextMesh Pro字体 方式一

2.制作TextMesh Pro字体 方式二

 3.通用字体资源

 2.web端中文不能输入窗口模式(解决方案)

二.移动端Inputfile调不起输入法(解决方案)

三.电脑浏览器端全屏InputFile无法输入中文(待验证)

1.Unity内cs代码

2.JavaScript代码:

3.JS代码位置示例


 

在Unity WebGL中实现中文输入是一个复杂的问题,因为浏览器的原生输入框在WebGL中不可用。然而,有一些第三方解决方案可以帮助实现中文输入 。

原工程地址:https://download.csdn.net/download/qq_37310110/88009399

一.TextMesh Pro中文显示问题

TextMesh Pro 是 Unity 中用于高级文本渲染的强大工具,支持多种语言和字体。然而,在使用 TextMesh Pro 显示中文时,可能会遇到一些问题,因为中文字符集与常规字体的字符集不完全匹配。

1.PC端和移动端中文显示异常乱码(解决方案)

在使用TextMesh Pro的自带字体时,是不支持中文的显示的。所以需要我们去制作新的字体文件。 找到系统字体库里面格式为ttf的字体导入到unity里面。

1.制作TextMesh Pro字体 方式一

鼠标选中导入的新字体(包含中文的字体,系统再带的大部分都带中文),右键Create-TextMeshPro-FontAsset,会创建当前字体对应的字体资源,然后文本控件的字体切换一下就可以正常显示中文了。但是这种制作方式在PC端可以正常显示,一旦打包WEBGL之后中文的显示就又有异常了。所以如果向

 

2.制作TextMesh Pro字体 方式二

菜单栏:Window-TextMesh Pro-FontAssetCreator,设置目标字体源,然后生成并保存新的字体资源 。如果有未包含的中文字符或者特殊符号可以直接在file文件里面添加然后再次生成覆盖即可

 3.通用字体资源

字体下载:

https://download.csdn.net/download/qq_37310110/88009382

 原工程地址:https://download.csdn.net/download/qq_37310110/88009399

 2.web端中文不能输入窗口模式(解决方案)

用以下方案目前只能在窗口模式下调用。原理就是检测inputfile的输入,然后动态的生成一个html的input控件把这个控件的输入内容传递给webgl的inputfile。

工具源码连接: https://github.com/kou-yeung/WebGLInput

 原工程地址:https://download.csdn.net/download/qq_37310110/88009399 

 在InputFile组件上添加WebGLInput脚本即可,有是否显示html输入控件的选项

 

二.移动端Inputfile调不起输入法(解决方案)

 原工程地址:https://download.csdn.net/download/qq_37310110/88009399 

工具源码连接: https://github.com/kou-yeung/WebGLInput

 在InputFile组件上添加WebGLInput脚本即可,有是否显示html输入控件的选项

三.电脑浏览器端全屏InputFile无法输入中文(待验证)

此解决方案为ChatGPT提供,是否可行待验证

1.Unity内cs代码

在Unity WebGL中实现中文输入可以使用Unity的Input类和JavaScript的交互。以下是一个示例代码,演示如何在Unity WebGL中实现中文输入:

using UnityEngine;
using System.Runtime.InteropServices;public class ChineseInput : MonoBehaviour
{[DllImport("__Internal")]private static extern void EnableChineseInput();[DllImport("__Internal")]private static extern string GetChineseInput();private bool isChineseInputEnabled = false;private string chineseInput = "";private void Start(){
#if !UNITY_EDITOR && UNITY_WEBGLEnableChineseInput();isChineseInputEnabled = true;
#endif}private void Update(){if (isChineseInputEnabled){string input = GetChineseInput();if (!string.IsNullOrEmpty(input) && input != chineseInput){chineseInput = input;Debug.Log("中文输入:" + chineseInput);}}}
}

这段代码中,我们使用了DllImport属性来声明与JavaScript的交互函数EnableChineseInputGetChineseInputEnableChineseInput函数用于启用中文输入,而GetChineseInput函数用于获取中文输入的文本。

Start方法中,我们通过EnableChineseInput启用中文输入,并将isChineseInputEnabled标志设置为true

Update方法中,我们通过调用GetChineseInput获取中文输入的文本。如果输入不为空且不等于之前的输入,我们将新的输入存储在chineseInput变量中,并在控制台中打印出来。

请注意,这段代码中的EnableChineseInputGetChineseInput函数是使用DllImport声明的,它们需要在JavaScript中实现。你需要在Unity的HTML模板文件(通常是index.html)中添加以下

2.JavaScript代码:

<script>function EnableChineseInput() {document.getElementById("unityContainer").focus();}function GetChineseInput() {var inputText = document.getElementById("unityContainer").value;document.getElementById("unityContainer").value = "";return inputText;}
</script>

在这个例子中,EnableChineseInput函数使Unity WebGL的容器元素获取焦点,从而激活键盘输入。GetChineseInput函数获取容器元素的值,并将其清空,以便下一次输入。

通过以上代码,你可以在Unity WebGL中启用中文输入并获取中文输入的文本。请确保你已经将JavaScript代码添加到Unity的HTML模板文件中,并在构建Unity WebGL项目时正确设置了模板文件。

3.JS代码位置示例

以下是将JavaScript代码添加到Unity WebGL的index.html文件的示例:

<!DOCTYPE html>
<html lang="en-us">
<head><meta charset="utf-8"><title>Unity WebGL</title><style>/* ... 省略其他样式 ... */</style>
</head>
<body><!-- Unity WebGL 容器 --><div id="unityContainer" style="width: 960px; height: 600px"></div><!-- Unity WebGL 构建的 JavaScript 文件 --><script src="Build/UnityLoader.js"></script><script>/* ... UnityLoader 初始化代码 ... */</script><!-- 中文输入 JavaScript 代码 --><script>function EnableChineseInput() {document.getElementById("unityContainer").focus();}function GetChineseInput() {var inputText = document.getElementById("unityContainer").value;document.getElementById("unityContainer").value = "";return inputText;}</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一个利用ChatGPT为世界上任何城市建立旅行路线(带链接)的工具 GPTravel Advisor

GPTravel Advisor - 在几秒钟内创建世界上任何城市的旅行路线 网址链接&#xff1a;https://gpt-travel-advisor.vercel.app/ GIthub&#xff1a;https://github.com/dabit3/gpt-travel-advisor ChatGPT中文论坛&#xff1a;https://gptocean.com/

ChatGPT 新版 API 推出 語音轉換文字模型 Whisper

OpenAI 宣布釋出新 ChatGPT API&#xff0c;允許第三方開發人員通過 API 將 ChatGPT 整合到他們的網站、應用程式及產品中。同時發表開源的&#xff0c;讓用户用以轉錄或翻譯音訊。 OpenAI 表示&#xff0c;新版的 ChatGPT API 不僅可用於創建人工智能聊天界面&#xff0c;更可…

怎么玩chatgpt?如何利用ChatGPT来编写PRD?

很多人对于chatgpt不知道怎么玩&#xff1f;其实对于一个产品经理来说&#xff0c;他可以这样玩&#xff01;在产品开发过程中&#xff0c;产品需求文档&#xff08;PRD&#xff09;是一个非常重要的文档&#xff0c;它描述了产品的功能、特性和目标用户等信息。编写PRD需要耗费…

我群 300+人已熟练使用的 ChatGPT Prompt 技巧

这是吴恩达联合 OpenAI 官方录制的 ChatGPT Prompt 免费视频课&#xff0c;最后一个总结&#xff0c;视频&#xff1a; https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines 在这一节中&#xff0c;我会分享两个技巧&#xff1a;Transforming 和 Expanding …

利用python进行数据分析~基金分析

利用python进行基金数据分析 背景说明分析过程1.获取所有种类基金数据1.1导入相关包1.2通过天天基金网接口获取基金数据1.2.1获取网页信息1.2.2将数据转化成二维表并写入本地磁盘&#xff08;dataframe&#xff09; 1.3数据概览1.3.1查看前几行数据1.3.2查看各类型基金分布及可…

Tushare+Talib基金指标分析

本文介绍python语言下的两个第三方库&#xff0c;Tushare&#xff08;获取股票和基金数据&#xff09;和Ta-Lib&#xff08;用于数据指标分析&#xff09;&#xff0c;及其相关使用案例。 一、安装 Tushare安装 # 方式1&#xff1a;pip install tushare# 如果安装网络超时可尝…

chatgpt赋能python:Python实现人机对话

Python实现人机对话 人机对话是指人类和机器之间的交互过程&#xff0c;其中人类作为用户&#xff0c;通过语音或文字与机器进行交互。Python作为一门流行的编程语言&#xff0c;可以用来实现人机对话系统。本文介绍如何使用Python实现人机对话。 Python语言的优势 Python是…

爬取链家网房价数据

感觉最近做的东西好菜~~随便了。 import requests from lxml import etree import csvheaders {Referer: https://zs.fang.lianjia.com/loupan/nht1pg1/,User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.1…

python爬取全国房价并分析

使用方法程序原理 数据来源数据爬取 mac下mysql安装&使用&创建库和表网站爬取分析网站数据抓取代码基础 数据分析 我相信国内房价一直都是苦逼程序员比较关注的事情&#xff0c;我也非常关注全国部分地区的房价&#xff0c;因此我最原始的需求就是想看看全国都哪些地方…

爬虫 58同城房价信息 高德的接口进行房价地图绘制

爬虫部分 // An highlighted block def main():base_url1 https://hz.58.com/xinfang/loupan/all/pbase_url2 /?PGTID0d0091a8-0004-f055-d9b7-c447c3e1c187&ClickID1date_list []for i in range(1,34):html ask_url(base_url1str(i)base_url2)bs BeautifulSoup(htm…

安居客西安房源爬取 + pyecharts 数据展示

第一步是数据爬取&#xff1a; import xlwt from bs4 import BeautifulSoup from selenium import webdriver import time,random from selenium.webdriver import ChromeOptionsdef main():baseurl "https://xa.fang.anjuke.com/loupan/all/p"datalist getData(b…

看我如何抓取最新房价数据

经过前几年一轮房价大涨&#xff0c;到现在因为国家大力调控等原因&#xff0c;市场已经褪去热度&#xff0c;正在慢慢变得稳定&#xff0c;价格也相较最高时下降了些。那现在房价到底怎样&#xff1f;接下来又会是怎样的发展的趋势&#xff1f;这里我们就可以通过 Python 把最…

python爬取上海链家网二手房数据

1、数据爬取说明 1.1 爬取目的 一个朋友在学习自考&#xff0c;作业是爬取数据进行数据分析&#xff0c;正好最近我在学习python&#xff0c;所以他委托我帮他完成这一工作 1.2使用模块 requests进行网络请求、bs4进行数据解析、xlwt进行excel表格存储 2、网页结构分析 2.…

购房选址分析之上海市

一日不见&#xff0c;如隔三秋。快过年了&#xff0c;凌晨GIS给大家拜个早年&#xff0c;提前祝大家新年快乐&#xff0c;牛气冲天&#xff01; 上期我们用矢量分析中的缓冲区分析和叠加分析的方法对长沙市的购房选址方面的问题进行了探讨&#xff0c;得到了许多小伙伴的回应&a…

链家全国房价数据分析 : 数据分析及可视化

相关文章&#xff1a;链家全国房价数据分析 &#xff1a; 数据获取 上一回我们提到了用爬虫爬取链家的新楼盘和二手房数据信息&#xff0c;这回我们来看看如何对他们进行分析。 新楼盘数据分析 因为我们爬的时候是一个个城市爬的&#xff0c;现在我们要把他们合在一起&#x…

大数据统计租房市场现状(上海篇)

对某方面有统计需求的同学可以留言哟~O(∩_∩)O~&#xff01;&#xff01;&#xff01; 数据下载时间&#xff1a;20170620 房间均价&#xff1a;为了对比1房&#xff0c;2房&#xff0c;3房哪个比较划算引入的概念。一条出租信息中&#xff0c;平均每个房间的价格&#xff0c…

链家全国房价数据分析 : 数据获取

最近一直在看论文&#xff0c;也有很久没有coding了&#xff0c;感觉对爬虫的技术有些生疏&#xff0c;我觉得即使现在手头没有在做这方面的东西&#xff0c;经常爬点对技术保鲜还是很重要的。所以这次我打算爬链家的房价数据&#xff0c;目的主要是对爬虫和Python的东西作一个…

上海二手房网站

文章目录 简介git总体架构开发目录 简介 业务目标&#xff1a;实现上海二手房全量数据动态更新、统计、汇总展示&#xff0c;了解二手房变化趋势。 技术目标&#xff1a;前端到后端技术的demo。前身&#xff1a;租房网站。毕业2年需求变更&#xff1a;租房->买房… git 前…

上海的二手房价有所下跌,现在你们的工资够买间厕所了吗?Python帮你分析上海的二手房价

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者&#xff1a;林小呆 仪表板展示 项目背景 去面试的时候被问上海二手房的一些情况&#xff0c;作为一个土著&#xff0c;我只知道上海这个区…