datatable刷新数据_UE4 利用SaveGame和CSV进行Runtime数据更新

 2023-09-07 阅读 16 评论 0

摘要:提前注释:使用UE420,项目基于C++需要先编译一次,角色控制互动逻辑基于C++,武器结构设计基于蓝图,有中文注释。大概是这样的,假设有一个游戏逻辑,游戏数据是基于CSV,那么datatable中存储了各个不同武

提前注释:使用UE420,项目基于C++需要先编译一次,角色控制互动逻辑基于C++,武器结构设计基于蓝图,有中文注释。

大概是这样的,假设有一个游戏逻辑,游戏数据是基于CSV,那么datatable中存储了各个不同武器的数据,有武器等级,武器内容,武器星级等等,怎么做到如果在Runtime下对武器升级后下一次进入游戏或者关闭UI再打开保持升级后武器的数据。

固定数据的做法,是再创建UI时,先走一遍datatable然后显示,但是这样每次走一次后,会将datatable重新刷新赋予到UI上,你再怎么更新,关了UI在打开,数据不会改变,因为datatable数据没有改变。

按照正常的逻辑,当游戏启动或者UI创建后,或者根据开发者自己的规定,先循环一次datatable,打开UI,会看到武器的信息,如果这个时候点击武器的升级,理论上来讲,假设原武器为2级,点击升级后,武器变为3级,这个时候如果我们退出游戏或者返回到主菜单,再次进入,就会发现游戏武器还是2级。

这个是一个游戏设计模式的问题,理论上来说我们应该对武器升级后的数据,一般武器的数据为一个结构体,也就是说更新当前结构体到原始的datatable中。

b827aa1f01cf131cac1c85affd520b0b.png

那么作为开发者知道CSV本身基于蓝图是无法进行重写的,使用c++可以实施的读写csv文件,参考文献如下:

https://answers.unrealengine.com/questions/156354/how-to-load-the-csv-datatable-dynamically.html

如果使用蓝图,需要结合savegame,或者自己写一个插件根据自己所需要的格式进行保存,博主在以前的文章好像发过一个读写txt文本的范例,或者json或者xml格式,思路都是一样,也就是说将数据转换成一个可以存储的格式,然后只对这个存储的格式进行操作。

文章的范例思路如下:首先在启动地图Map1,创建DataTable,创建后,检测当前是否有游戏存档,如果有游戏存档,则读取,如果没有,则将DataTable中的数据,存入SaveGame中并创建一个slot,这样游戏每次启动都会遵循这个逻辑,这个也是传统游戏所做的,如下图所示:

13b94f0f1f4c71030e163d59ef20c059.png

然后通过UI上点击开始游戏后,这个根据开发者对下一个地图的设计,是游戏大厅还是任务列表根据需求设计,开始游戏后,打开第二个地图,地图开始会读取存档数据给到一个控制器模块,这个可以不给控制器模块,可以随便给,根据需求设计:

d89b48c32e76c28bbb0de6ea4e90d9e3.png

其实这个样子已经完成了,假设弹出武器UI界面,进行操作完毕后,更新存档中的数据:

a42da36883854bf183ab50c1a5d4cb59.png

这里点了强化以后,会对金钱,稀有度,攻击力进行修改,并且最终会覆盖savegame中的存档,再次进行一次存储更新:

8b1f3ec66fc73dcbb749cebaee09bce2.png

整体逻辑非常简单,多看几次就好了。这样就可以通过蓝图去变相的相当于是不断的更新DataTable中的数据,角色升级啊,武器升级什么的,就可以使用这种方法来做。

其他升级需要更新数据的,可以执行当前操作后马上更新,也可以比如下面的视频中,UI里整体操作完成关闭UI界面的时候,对所有变更数据进行一次存档更新,都可以,根据设计来定。

而且本身游戏的运行逻辑也是再不断的创建、更新和储存数据。

最后来一个演示视频和工程:

a52c048c961caa344090649699717ca9.png
https://www.zhihu.com/video/1129919731083427840

工程源文件:链接:https://pan.baidu.com/s/1iDNlfSOmXa2zeQaw1H7hAA 提取码:5ffy

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/12311.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息