UE4_DataTable 实现Id自增与设置RowName
在编辑器下实现id自增
例如上图,在点击Add
时,实现Id自动加1,如何实现呢?
方法如下:
- 在定义如图上述的结构体时,在Id属性列,在结构体属性初始化时赋值
定义一个静态方法,静态方法里动态获取
Datatable
表里的数据获取上述表结构里的
Id
的属性值的方法有很多,如下只提供一个参考
int32 UDataTableHelperUtils::GetDataTableLastIdNum(){int CardId = 0;UDataTable* DataTable = LoadObject<UDataTable>(nullptr,TEXT("DataTable'/Game/DataTables/DT_Cards.DT_Cards'"));if(!DataTable) return CardId;TArray<TArray<FString>> TableData = DataTable->GetTableData();#if WITH_EDITORfor(int i=0; i< TableData.Num();i++){FDataTableEditorUtils::RenameRow(DataTable,*TableData[i][0],*TableData[i][1]);}#endifDataTable->Modify();// UEditorAssetLibrary::SaveAsset(TEXT("DataTable'/Game/DataTables/DT_Cards.DT_Cards'"),false);const FString RowId = TableData[TableData.Num()-1][1];CardId = FCString::Atoi(*RowId);return CardId;}
其中DataTable->GetTableData()
方法里获取的是一个二维数组,行列结构。默认列下标为1
是代表id
属性的值
其中const FString RowId = TableData[TableData.Num()-1][1];
获取就是最后一行Id
的属性值
动态修改RowName
如果是使用代码层面,动态添加一条记录。可以使用FDataTableEditorUtils
,主要该类属于UnrealEd
模块,在运行时是不可以使用的。
FDataTableEditorUtils::AddRow()
在运行时或者Runtime模式下,也可以通过UDataTable
的方法AddRow()
实现添加,但在运行时没有提供重置RowName
的方法。
在上述代码中,该方法修改RowName
并不是一个很高效的办法,这个可根据实际情况调整,笔者在编辑器下进行测试,不考虑性能问题
for(int i=0; i< TableData.Num();i++)
{FDataTableEditorUtils::RenameRow(DataTable,*TableData[i][0],*TableData[i][1]);
}
最后的最后,如果您觉得这篇文章帮助到您,请资助下这位朋友的粮食,谢谢!
UE4_DataTable 实现Id自增与设置RowName相关推荐
- oracle实现id自增和设置主键
1.关于主键:在建表时指定primary key字句即可: create table test( id number(6) primary key, name varchar2(30) ); ...
- mybatis-plus设置id自增,插入数据。
mybatis-plus设置id自增,插入数据 没修改前 没修改前 这是我的实体类. @Data @AllArgsConstructor @NoArgsConstructor @ToString pu ...
- mysql如何让自增id从1开始设置方法(三种方法)
mysql如何让自增id从1开始设置方法 第一种 如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用"清空数据表".这样自动增长ID也将会从1开始. 清 ...
- SpringBoot+mongoDB实现id自增
这段时间给朋友做了一个微信小程序,顺便练习一下spring boot,虽然项目使用的是JPA+MySQL,但是好奇尝试了一下MongoDB实现自增ID,虽然MongoDB很少有自增ID的需求(在分布式 ...
- MyBatis-Plus 乐观锁 防止超卖、逻辑删除、自动填充、Id自增
MyBatis-Plus 乐观锁 防止超卖.逻辑删除.自动填充 Day3 前面的简单的讲了一下mybatis-plus的使用 当然有很多不足 我写博客就是想促进大家一起学习 也想让这些内容更简单一些. ...
- 数据库-Oracle【Oracle数据库设置默认表空间问题及Oracle,SQL,MySQL的自增变量设置】...
一. Oracle数据库设置默认表空间问题 DBA们经常会遇到一个这样令人头疼的问题:不知道谁在Oracle上创建了一个用户,创建时,没有给这个用户指定默认表空间,所以这个用户就会采用默认的表空间-- ...
- ORACLE 实现 ID 自增
前言 目录 前言 具体命令 具体详解: 由于oracle数据库不像mysql一样在建立表的时候设置自动增长列功能 设置UUID的缺点 字符串占用的空间比较大. 而且效率也比较低下. 生成的ID是字符串 ...
- MiniDao支持ID自增主键策略,使用讲解
MiniDao支持ID自增主键策略 用法示例: /*** 插入数据(ID采用自增策略,并返回自增ID)* @param employee */ @IdAutoGenerator(generator=& ...
- ssh oracle id native,hibernate解决oracle的id自增?
以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...
最新文章
- java mobile phone games_j2me100-src Java
- mysql connection闪退重连_玩家排位巅峰赛开局闪退,重连失败,10分钟后一个提示让他懵了...
- php万年历月份处理_php实现万年历的完整代码
- Spring @Value注解无法正确赋值问题
- mysql将查询数据另存
- 苹果进行iPhone问世后最重大转型:硬件时代转互联网服务
- SPI协议的通信原理
- js生成二维码并下载、批量生成二维码和压缩下载
- Litestar4D道路照明设计
- 《软件测试价值提升之路》学习之—测试工程师能力模型
- 按键精灵可以实现c语言吗,按键精灵的原理和编写方法(1)
- 《跟小智一起学网络》教程目录
- 牛牛试题排版插件V3更新发布
- 求矩阵乘法及行列式的值
- 计算机主机启动 显示器不动什么原因,主机开了电脑屏幕不亮怎么回事?电脑开机后显示器不亮的解决方案...
- 免费的桌面主题按钮 V1.0
- 低功率、运动传感器 PYQ 1548/7659 特性及应用
- 苹果手机用什么软件测试续航,苹果哪个系统最耗电 iOS10/11/12/13电池续航测试
- 学习vue笔记(5)
- 2020年了,IT外企还香吗?
热门文章
- keil烧录hex文件
- 数组属于一种原生类_前端程序员面试你应该懂的原生JS——1
- 多项式插值法的Python程序
- AutoCAD 2012开发环境配置
- ubuntu 安装gitk
- VTK和ITK中的坐标系统
- R 数据处理 流程目录及总结(学习生信学习手册的自我梳理)
- yarn在VSCode中无法执行,因为在此系统上禁止运行脚本。解决方法
- Spark开发之maven配置
- http://www.cnblogs.com/plexwin/archive/2005/10/28/263888.html