个人开发测试

  • 关于
  • 历史项目
  • 游戏开发
    • 一些轮子
    • Unity
    • UnReal
    • Godot
    • 常用框架
  • 游戏设计
    • 游戏品类研究
    • 游戏心理学
    • 游戏杂谈
  • 计算机科学
    • 算法、数据结构
    • 图形学
    • 网络
    • 计算机语言
  • 留言板
  • 推荐
游戏开发/个人感悟/一些废话
  1. 首页
  2. 游戏开发
  3. Unity
  4. 正文

【YFramework】【DataTable】Unity数据表导入及处理

2022年2月12日 2568点热度 0人点赞 0条评论

最近在把之前自己写的/用的舒服的脚手架抽出来,做通用模块。花一天时间写了一下Unity中数据表的读取和数据持久化操作。

关于数据导入其实有很多技术路线可以用。大多数都是以excel为起点(策划友好的),unity可读/可动态加载的格式(json,xml,csv,lua,assetdatabase等)为终点的 序列化/反序列化 处理方案。这部分的编码没有什么技术含量,主要的工作量在于处理C#中对于对象类型的强要求。如果用lua实现的话工作量不超两个小时,毕竟万物基于table。

目前V0.1版本采用的技术路线是,excel由导表工具(第三方开源)转换为Josn(KV,Array)并自动生成对应C#类。数据导入模块处理所有C#数据类的数据导入和初始化,使其在整个游戏生命周期中.Net层随时可读。且json以AB包的形式动态加载,达成数据的热更。

综上,该模块的核心内容可以拆为三部分,载入到scene中作为单例常驻提供读取数据能力的DataTableManager,处理Json加载和类型绑定的DataTableCore静态类,处理PC Runtime文件索引及加密的IOHelper静态类,以及负责Json数据序列化/反序列化的JsonHelper。其实现阶段后两者可以融合起来,但是为了后期更好的解耦,方便Helper适应不同文件格式的平行堆量,故此拆分。

其中的关键的在于对导入的不同格式json文件的支持:使用Newtonsoft.Json.Linq库来支持Jarray和Jobject的序列化与反序列化,并通过C#反射绑定对应Class,并将其分类存入Dict和Array的List中,供运行时调取。

array格式Json
KV格式Josn

当前还没做AB包载入,稍后补全。后期会通过资源管理模块实现对于全局资源的统一管理和优化。

------------------------------------------------------------------------- -----2022.2.12 下午16:14 于上海漕河泾

标签: YFramework
最后更新:2022年5月26日

可以吃的妙脆角

平平无奇的游戏开发者

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档
  • 2024 年 2 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 1 月
  • 2022 年 11 月
  • 2022 年 9 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 4 月
  • 2020 年 11 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 4 月
分类
  • CSharp
  • Lua
  • NAS
  • Unity
  • 一些轮子
  • 历史项目
  • 尚未分类
  • 常用框架
  • 杂
  • 游戏品类研究
  • 游戏开发
  • 游戏杂谈
  • 游戏设计
  • 计算机科学
已阻挡的垃圾评论
3条垃圾评论已被Akismet阻挡

COPYRIGHT © 2022 XuYue. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

京ICP备2022001429号-1