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

关于使用ScriptObject作为项目数据配置

最近发现新项目中使用了很多ScriptObject作为配置数据,对于ScriptObject 我先前经历的几个项目都很少或者几乎不使用它作为配置。为什么呢?


优点

  • 编辑器模式下运行时可实时修改资源数据并会保存到本地。 真机不行。
  • 可视化,编辑简单。
  • 可直接引用unity的其他资源 如引用一个prefab,也可被其他资源引用。
  • ScriptObject加载上来如果不Instinate,则共享这一份数据。因此也适合做配置.不过MonoBehaviour的gameobject不实例化也是一样的效果。

缺点

  • 数据量大了之后可编辑性并不比Excel好。
  • 删除修改字段会涉及到所有其他ScriptObject发生变化,更新量大不说,且增加删除字段对于使用lua作为热更方案是无法更新的。
  •  涉及到客户端和服务器的共同配置更不能使用ScriptObject了。
  • ScriptObject可以直接关联Unity中的其他资源,比如直接引用一个prefab,在真机上,直接关联,加载该ScriptObject时会同时加载其引用的Prefab,但是ScriptObject常被用作配置,大部分情况不需要实时加载引用资源。当然可以记录其引用路径,但需要做引用丢失的检测(引用的prefab被删除的情况) 这个是可以做到的。但是如果记录路径 那不如使用excel或者json、xml等格式。

应用场景  

在我看来,结合其优点缺点,可以考虑在编辑器模式下使用ScriptObject存储数据(可视化+方便运行时调试数据,运行时保存),打包之前会生成json等作为真机运行时数据。这样即使用了ScriptObject的优点,又可以通过直接更新json中间文件抵达热更新的效果。


以上仅为个人见解。


http://www.kler.cn/news/109111.html

相关文章:

  • 私有云:【11】win10安装Agent客户端组件
  • 【Linux】环境变量
  • GoLong的学习之路(十一)语法之标准库 fmt.Printf的使用
  • JDK、JRE及JVM的关系及作用
  • web:[网鼎杯 2020 青龙组]AreUSerialz
  • 第44天:前端及html、Http协议
  • ChinaSoft 论坛巡礼 | 智慧化 IDE 论坛
  • day37(事件轮询机制 ajaxGet执行步骤与案例(五个步骤) ajax属性 PHP返回JSON对象(两种))
  • 08 MIT线性代数-求解Ax=b:可解性与结构Complete Solution of Ax=b
  • 设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码
  • el-table多选表格 实现默认选中 删除选中列表取消勾选等联动效果
  • 292_C++_建立流连接,创建多个线程执行I\O异步操作
  • 搭建MyBatis
  • volatile 系列之如何解决可见性问题
  • excel技巧
  • JVM虚拟机:从结构到指令让你对栈有足够的认识
  • Kali安装docker
  • 婚礼的魅力
  • 清华训练营悟道篇之操作系统的内存管理
  • Redis的瓶颈在哪里?
  • 第一章 初识Android
  • 强大易于编辑的流程图组织图绘制工具draw.io Mac苹果中文版
  • Epinoia-有状态网络的意图验证模块,略读
  • JavaWeb复习
  • Leetcode—21.合并两个有序链表【简单】
  • Hadoop学习总结(搭建Hadoop集群(伪分布式模式))
  • c++系列——智能指针
  • vue3后台管理框架之将模拟Mock接口替换成真实接口
  • 图情档核心期刊 | 北大核心、CSSCI、CSCD
  • 【PyQt学习篇 · ⑥】:QWidget - 事件