Unity3D 数据转换 本地数据存储、Excel表格数据读取与多语言本地化
Unity3D 项目框架相关
- 数据转换 TDataConvertion
- XML本地数据存储 TGameSave
- Excel读表工具 TExcel
- 多语言本地化 TLocalization
范例工程: GITHUB
工具构建核心为最大化节省个人代码量,并以反射为基础实现方式。
文章内容幅度相对较大, 需通过范例工程理解。
对该文章/工程的相关内容有疑问或者建议请联系作者。
数据转换 TDataConvertion
string TDataConvertion.Convert(object obj)
object TDataConvertion.Convert(string obj)
对目标结构体的私有属性/字段进行反射结构迭代解析
1.依照解析结果 转换数据并拼接成目标字符串
2.按照解析结果 依次分割字符串并转化成目标值
数据转换方案
1.基础类型如int/string/float等提供object-string及string-object的转换字典并根据类型进行转换
2.包含类型如IList<>以及IDataConvert 会增加迭代次数 并根据根据迭代次数获取当前拼接字符
存在的问题以及未来会更新的点:
1.基础类型转换没有使用迭代拼接断点会出现些许问题。
2.对于进行频繁拼接的string应该得用StringBuilder这类减少gc
3.迭代次数有限制 可以自行调整迭代字符数组(m_PhraseLiterateBreakPoints)
注意: 本质上是一个为了加深理解造的轮子 存在些许问题 不过对本人目前的项目已经达标
若存在问题可以把相关接口调整成JSON或者PROTOBUF等数据转换类
XML本地数据存储 TGameSave
TGameSave<T>.Init(); //初始化
TGameSave<T>.Data; //内容数据(读/写)
TGameSave<T>.Save(); //异步保存
对目标类公有字段进行反射结构解析
以属性定义名称作为XML节点名称
通过TDataConvertion的数据转换获取节点内容进行XML存储
在无参数的构造函数下填写对应字段数据
作为初始化或数据出错时的默认数值
文件存储在Application.persistentDataPath的Save目录下
Excel读表工具 TExcel
Properties<T>.Init(); //单Sheet表初始化
Properties<T>.PropertiesList; //内容数据(只读)
SheetProperties<T>.Init(); //多Sheet表初始化
SheetProperties<T>.GetPropertiesList(int i); //对应Sheet内容数据(只读)
表格内容的获取是通过C#-Excel读写插件获取的字符串集合
List<string[]> TExcel.Tools.ReadExcelFirstSheetData(TextAssets assets) //读取表的所有内容
对目标结构体的私有属性/字段进行反射结构解析
通过顺序对应的形式对获取读取的Excel表内容并依次赋值
Excel表填写相关:
1.首行作为备注行 供方便需求理解任意填写
2.从第二行开始便是读取到游戏内的数据
3.结构体数据格式排序与结构体内容排序相同即可
4.右侧超过结构体数据数目的内容对数据无影响
注意:
Unity读取文本数据必须将后缀为.bytes,
同时excel表存储的类型须为xls类型(建议创建后修改为.bytes,并通过打开方式打开)
在2018之后自带System.Data.dll 将相关内容导入工程的时候需要将重复dll删除
多语言本地化 TLocalization
UIT_TextExtend/EUITextExtend //多语言本脚本UI组件及自定义编辑器脚本
TLocalization.SetRegion(enum_Option_LanguageRegion) //切换语言区域
TLocalization.OnKeyLocalized //语言区域切换触发事件
结合上文读表工具可以获取SLocalization表的集合
将内容储存为 string,string的字典 键值对应
调用切换区域函数重新读取并读取不同的列
感谢阅读文章 如遇问题请联系博主--StriteR. 2020.4.11
Unity3D 数据转换 本地数据存储、Excel表格数据读取与多语言本地化相关推荐
- Python爬虫项目:爬取JSON数据存储Excel表格与存储图片
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...
- ant 改变表格数据_React ant design表格导出数据为EXCEL表格数据
一.由于公司项目需要,需要将表格数据导出为EXCEL表格数据.环境React+Ant Design 二.安装插件js-export-excel yarn安装-记得以管理员身份执行 yarn add j ...
- 10000条txt数据转为excel表格数据
从网上查资料知道Java有2种进行excel数据写入,一种jxl,另一种poi. jxl架包下载地址带demo:https://download.csdn.net/download/wangguido ...
- matlab中根据表格数据画图,excel 表格数据画图-如何利用matlab根据excel表格里面的数据画图...
在matlab上如何导入excel表格然后画图 "在excel中由数据画图,且显示图线的函数"的操作步骤是: 1.以Excel 2016为例,打开Excel工作表: 2.选择数据区 ...
- 几万条数据的excel导入到mysql_【记录】2万多条数据的Excel表格数据导入mysql数据库...
主题 刚开始的时候做了两个小方案! 第一个是直接Excel处理完导入,但是这个导入的话虽然简单出错率很大! 第二个是想直接用php做个小程序直接导入数据,但是想了想2万条数据处理,百分之百浏览器会一直 ...
- 多线程导出excel高并发_用多线程优化Excel表格数据导入校验的接口
公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前 ...
- 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...
- 《Unity 3D游戏客户端基础框架》protobuf 导excel表格数据
前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...
- python读取excel表格-python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
最新文章
- DotNetBar的使用—(界面风格)
- Prismatic 机器学习不一定得用大框架
- LeetCode精讲 03无重复字符的最长子串(滑动窗口)
- kaggle研究生招生(上)
- 如何将Apple Mail建议用于事件和联系人
- springcloud hystrix实战(二)
- Spring—使用类加载从配置文件中读取配置
- linux运维人员如何最大限度避免误删文件
- java性能优化文章
- 190401每日一句
- Python2.7.3 学习——准备开发环境
- PHP+MYSQL图书管理系统(课设)
- c语言实现61850协议,C语言实现61850库实现代码
- WinRAR 4.01 简体中文版 [0530]
- 宏基E5572g 键盘排线插拔 拆机局部
- cisp证书考试费用_cisp考试费多少钱
- 2014 IT互联网公司校招应届生待遇大全
- 在windows11环境下如何通过主机名ping通其它系统
- 白鲸开源代立冬:一年5个孵化项目来自于中国,佛系Apache如何帮助中国开源立足全球?
- MT6572的所有版本对语音解锁和语音控制功能的支持情况