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表格数据读取与多语言本地化相关推荐

  1. Python爬虫项目:爬取JSON数据存储Excel表格与存储图片

    随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...

  2. ant 改变表格数据_React ant design表格导出数据为EXCEL表格数据

    一.由于公司项目需要,需要将表格数据导出为EXCEL表格数据.环境React+Ant Design 二.安装插件js-export-excel yarn安装-记得以管理员身份执行 yarn add j ...

  3. 10000条txt数据转为excel表格数据

    从网上查资料知道Java有2种进行excel数据写入,一种jxl,另一种poi. jxl架包下载地址带demo:https://download.csdn.net/download/wangguido ...

  4. matlab中根据表格数据画图,excel 表格数据画图-如何利用matlab根据excel表格里面的数据画图...

    在matlab上如何导入excel表格然后画图 "在excel中由数据画图,且显示图线的函数"的操作步骤是: 1.以Excel 2016为例,打开Excel工作表: 2.选择数据区 ...

  5. 几万条数据的excel导入到mysql_【记录】2万多条数据的Excel表格数据导入mysql数据库...

    主题 刚开始的时候做了两个小方案! 第一个是直接Excel处理完导入,但是这个导入的话虽然简单出错率很大! 第二个是想直接用php做个小程序直接导入数据,但是想了想2万条数据处理,百分之百浏览器会一直 ...

  6. 多线程导出excel高并发_用多线程优化Excel表格数据导入校验的接口

    公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前 ...

  7. 【Unity】安装配置Python使用protobuf转换Excel表格数据并在unit中使用

    前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...

  8. 《Unity 3D游戏客户端基础框架》protobuf 导excel表格数据

    前言: 之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数 ...

  9. python读取excel表格-python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...

最新文章

  1. DotNetBar的使用—(界面风格)
  2. Prismatic 机器学习不一定得用大框架
  3. LeetCode精讲 03无重复字符的最长子串(滑动窗口)
  4. kaggle研究生招生(上)
  5. 如何将Apple Mail建议用于事件和联系人
  6. springcloud hystrix实战(二)
  7. Spring—使用类加载从配置文件中读取配置
  8. linux运维人员如何最大限度避免误删文件
  9. java性能优化文章
  10. 190401每日一句
  11. Python2.7.3 学习——准备开发环境
  12. PHP+MYSQL图书管理系统(课设)
  13. c语言实现61850协议,C语言实现61850库实现代码
  14. WinRAR 4.01 简体中文版 [0530]
  15. 宏基E5572g 键盘排线插拔 拆机局部
  16. cisp证书考试费用_cisp考试费多少钱
  17. 2014 IT互联网公司校招应届生待遇大全
  18. 在windows11环境下如何通过主机名ping通其它系统
  19. 白鲸开源代立冬:一年5个孵化项目来自于中国,佛系Apache如何帮助中国开源立足全球?
  20. MT6572的所有版本对语音解锁和语音控制功能的支持情况

热门文章

  1. 在华为海思上面实现wpa_supplicant移植和最终连接上网
  2. menu显示菜单和提供选择
  3. 2020年Web前端最新导航(常见前端框架、前端大牛)
  4. 协同-管理软件界的最后一片沃土
  5. 一个阶段的结束,意味着另一个阶段的开始
  6. python的判断语句练习
  7. 软件性能测试需要什么资格,一个合格的性能测试工程师需要掌握哪些技能
  8. 多线程入门级教学!!!
  9. 锂电/氢电池水冷流体连接器
  10. MSAA, SSAA, FXAA, TXAA