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

Unity 多语言 轻量高效的多语言工具集 LanguageManager

效果展示

在这里插入图片描述

支持excel导入自动化

组件化 更方便

在这里插入图片描述

也提供直接获取多语言的接口

没有挂 LanguageText的对象也可以获取多语言文本内容
在这里插入图片描述

支持 Format接口 可以传递N个参数进来组装多语言

在这里插入图片描述

支持首次系统语言自测

在这里插入图片描述

支持语言切换后本地自动保存配置

在这里插入图片描述

支持实时切换 同步刷新所有UI

在这里插入图片描述

容错处理

  • 当设置当前多语言为 不存在的多语言语种 时 选择默认语言( 英文 )
  • 当默认语言( 英文 ) 没有的时候 默认选择第一个多语言
  • 当更新多语言时 新的多语言只有存在的时候才会刷新文本显示 避免多语言ID错误
  • 每个LanguageText组件 提供 UpdateText( string customContent = null ) 可以自定义设置文本

部分源码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;[RequireComponent( typeof( Text ) )]
public class LanguageText : MonoBehaviour
{[SerializeField]private int m_mulID = 0;//多语言IDpublic int mulID{get{return m_mulID;}set{ var newTextValue = LanguageManager.GetInstance().GetText( value );if ( !string.IsNullOrEmpty( newTextValue ) ){m_mulID = value;UpdateText( newTextValue );}}}//UGUI Text 句柄Text textHandler = null;//可以指定内容public void UpdateText( string customContent = null ){if ( null == textHandler ){textHandler = GetComponent<Text>();}if( customContent == null ){customContent = LanguageManager.GetInstance().GetText( mulID );}textHandler.text = customContent;}private void Awake(){LanguageManager.GetInstance().___AddLanguageTextComponent( this );}private void OnEnable(){if ( !LanguageManager.GetInstance().inite ){//未初始完成 后续初始化完成后会由Manager再调用更新的 不用担心return;}UpdateText();}//有可能切出去修改了设备语言private void OnApplicationFocus( bool focus ){if ( focus ) UpdateText();}private void OnDestroy(){LanguageManager.GetInstance().___RemoveLanguageTextComponent( this );}
}

插件地址 csdn下载链接

相关文章:

Unity 多语言 轻量高效的多语言工具集 LanguageManager

效果展示 支持excel导入自动化 组件化 更方便 也提供直接获取多语言的接口 没有挂 LanguageText的对象也可以获取多语言文本内容 支持 Format接口 可以传递N个参数进来组装多语言 支持首次系统语言自测 支持语言切换后本地自动保存配置 支持实时切换 同步刷新所有UI 容错处…...

在Linux和Windows上安装zookeeper-3.5.9

记录&#xff1a;378场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;安装zookeeper-3.5.9。在Windows上操作系统上&#xff0c;安装zookeeper-3.5.9。版本&#xff1a;JDK 1.8 CentOS 7.9 zookeeper-3.5.9官网地址&#xff1a;https://zookeeper.apache.org/源码地址&…...

【ESP32+freeRTOS学习笔记-(八)资源管理】

目录1、 资源使用概况2、互斥方法之一&#xff1a;基本临界区2.1、taskENTER_CRITICAL_FROM_ISR() 和taskEXIT_CRITICAL_FROM_ISR()3、互斥方法之二&#xff1a;挂起或锁定调度程序3.1 vTaskSuspendAll()3.2 xTaskResumeAll()4 互斥方法三&#xff1a;互斥信号量&#xff08;和…...

P1427 小鱼的数字游戏(赋值运算符和String)

小鱼的数字游戏 题目描述 小鱼最近被要求参加一个数字游戏&#xff0c;要求它把看到的一串数字 aia_iai​&#xff08;长度不一定&#xff0c;以 000 结束&#xff09;&#xff0c;记住了然后反着念出来&#xff08;表示结束的数字 000 就不要念出来了&#xff09;。这对小鱼…...

Java学的好,工作不愁找

俗话说的好&#xff1a;“Java学的好&#xff0c;工作不愁找”&#xff0c;不管我们学习哪一门语言&#xff0c;我们都要掌握从抽象化中提取出来的方法&#xff0c;这样你才能提高我们的学习能力&#xff0c;并且在学习新事物的时候可以提取我们自己的想法。学习java&#xff0…...

表情包可视化编辑、生成配置信息数据工具

合成GIF图片 - 表情包 后续&#xff0c;用于快速、便捷生成 img_config.js 中 要生成的GIF每一帧数据&#xff08;写入头像图片信息参数&#xff09;&#xff1b; 1、先上传 写入GIF中头像 标准图&#xff0c;同时获取图片信息&#xff0c;更新 写入GIF中头像 初始值&#xff0…...

java简单循环结构

while循环结构 Java提供的while条件循环。它的基本用法是&#xff1a; while (条件表达式) {循环语句 } // 继续执行后续代码while循环在每次循环开始前&#xff0c;首先判断条件是否成立。如果计算结果为true&#xff0c;就把循环体内的语句执行一遍&#xff0c;如果计算结果…...

【Servlet+Jsp+Mybatis+Maven】WEB图书馆管理系统

web图书馆管理系统一、绪论二、流程和其页面展示效果流程页面效果项目结构三、具体实现第一步&#xff1a;备数据库表第二步&#xff1a;编写登录前端代码第三步&#xff1a;利用过滤器处理安全问题第四步&#xff1a;控制层去实现相关调用第五步&#xff1a;实现持久化层与数据…...

【WPF】WindowChrome 自定义窗口完美实现

WindowChrome 自定义窗口完美实现简介效果图自定义最小化、最大化、关闭按钮布局实现结语简介 Microsoft官网关于 WindowChome 的介绍 截取Microsoft文章的一段话&#xff1a;   若要在保留其标准功能时自定义窗口&#xff0c;可以使用该 WindowChrome 类。 该 WindowChrome…...

Python客户端使用SASL_SSL连接Kafka需要将jks密钥转换为pem密钥,需要转化成p12格式再转换pem才能适配confluent_kafka包

证书生成 生成证书以及jks参考以下文章 https://blog.csdn.net/qq_41527073/article/details/121148600 证书转换jks -> pem 需要转化成p12以下转换才能适配confluent_kafka包&#xff0c;直接jks转pem会报错不能使用&#xff0c;具体参考以下文章 https://www.ngui.cc/z…...

JDK8 ConcurrentHashMap源码分析

文章目录常量说明put() 方法putVal() 方法initTable()&#xff1a;初始化数组treeifyBin()&#xff1a;链表转红黑树tryPresize()&#xff1a;初始化数组扩容TreeBin() 构造方法&#xff1a;生成红黑树putTreeVal()&#xff1a;往红黑树中插入值helpTransfer()&#xff1a;多线…...

前置知识-初值问题、欧拉法、改进欧拉法

1.1 初值问题 初值问题是科研、工程技术应用中最常见的一类问题, 一阶常微分方程的初值问题表述如下: 已知 u ( x ) u(x) u(x) 的起始点 ( x 0 , u 0 ) \left(x_0, u_0\right)...

睡眠影响寿命,这几个睡眠习惯赶紧改掉!

我们知道&#xff0c;现在睡眠不足已经成为普遍问题&#xff0c;但你知道睡眠的时长会影响寿命吗&#xff1f;熬夜对身体不好&#xff0c;已是老生常谈。但睡得过早&#xff0c;也可能影响寿命&#xff01;2021年《睡眠医学》杂志一项针对21个国家11万名参与者的研究中发现&…...

Linux逻辑卷管理器(PV、VG、LV、PE)

目录 PV阶段 VG阶段 LV阶段 文件系统阶段 逆向操作&#xff08;删除LVM&#xff09; 逻辑卷管理器&#xff08;Logical Volume Manager&#xff09;&#xff0c;简称LVM LVM的做法是将几个物理的分区&#xff08;或磁盘&#xff09;通过软件组合成为一块看起来时独立的大…...

Centos7 内核升级

一、背景 在 CentOS 使用过程中&#xff0c;高版本的应用环境可能需要更高版本的内核才能支持&#xff0c;所以难免需要升级内核&#xff0c;所以下面将介绍yum和rpm两种升级内核方式。 关于内核种类: kernel-ml——kernel-ml 中的ml是英文【 mainline stable 】的缩写&…...

SpringBoot 启动配置文件加载和参数配置修改问题

SpringBoot 配置文件修正和参数覆盖SpringBoot 配置文件加载和参数覆盖1、SpringBoot 配置文件加载1.1、修改application.properties的参数几种方式1.2、方法一&#xff1a;直接CMD1.3、方法二&#xff1a;系统变量配置1.4、方法三&#xff1a;程序运行配置1.5、方法四&#xf…...

布隆过滤器和布谷鸟过滤器详解

今天和大家分享下布隆过滤器和布谷鸟过滤器 一.布隆过滤器 1.简单介绍 布隆过滤器是用于检索一个元素是否在一个集合中的算法&#xff0c;是一种用空间换时间的查询算法。 2.实现原理 布隆过滤器的存储结构是一个bitmap结构&#xff0c;初始值都是0&#xff0c;如下图所示&am…...

WebGIS前端框架(openlayers,mapbox,leaflet)图形图像底层渲染原理分析

学了这么多的框架,做了这么多的项目,你是否清楚你使用的GIS框架(mapbox,open layers,cesium,leaflet)底层到底是什么原理?是否清楚哪些所谓的地图影像,矢量图形,图标,图像动画等是如何渲染到网页上的?这篇文章就大家解读一下WebGIS的底层原理。 首先说说历史,有时…...

AcWing语法基础课笔记 第五章 C++中的字符串

第五章 C中的字符串 字符串是计算机与人类沟通的重要手段。 ——闫学灿 字符与整数的联系——ASCII码 每个常用字符都对应一个-128~127的数字&#xff0c;二者之间可以相互转化&#xff1a; 常用ASCII值&#xff1a;’A’-‘Z’ 是65~90&#xff0c;’a’-‘z’…...

抓包工具Charles(一)-下载安装与设置

无论是在测试、开发工作中&#xff0c;抓包都是很重要、很常用的技能。Charles作为一款抓包工具&#xff0c;能够满足大部分的工作需求。 文章目录一、下载地址二、安装三、安装根证书&#xff08;电脑&#xff09;四、设置五、抓包附录&#xff1a;[零基础入门接口功能测试教程…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...