第一步:用C++写一个DataAsset创建方法。该操作貌似无法通过蓝图实现。 UDreamItem*UDreamFunctionLibrary::CreateNewDataAsset(constTSubclassOf<UDreamItem>ItemClass,constFString&AssetPath,constFString&AssetName){if(!ItemClass){UE_LOG(LogTemp,Error,TEXT("Func[%s]->TargetClass hasnotbeen assigned"),*FSt...
新建一个Structure结构体,命名为ponts_str,如下图: 把csv拖进UE,选择Row Type刚才新建的结构体points_str,导入得到一个DataTable,如下图: 再创建一个结构体,命名为rand_seed(这是第一层级),类型搜索structure,选择刚才的pointstr,设置为array,相当于一个数组里面存放多个结构体对象,相当于一维数组,如下图: 再创...
首先通过Datatable的FindRowUnchecked根据RowName获取到当前的Row的指针 uint8* RowPtr = DataTable->FindRowUnchecked(FName("YourRowName")); 再用GetRowStruct获取到我们蓝图的Struct的CPP父类 const UScriptStruct* ScriptStruct = DataTable->GetRowStruct() ...
在UE5 C++环境中,获取在蓝图中创建的DataTable和Struct的RowData时,常规方式可能受限于Struct的声明位置。本文旨在介绍一种利用反射机制解决此问题的方法。常规做法中,通过DataTable的FindRowUnchecked函数根据RowName获取Row指针,进而使用GetRowStruct函数获取蓝图中Struct的C++父类。然后,通过内部的PropertyLi...
第一步:用C++写一个DataAsset创建方法。该操作貌似无法通过蓝图实现。 UDreamItem*UDreamFunctionLibrary::CreateNewDataAsset(constTSubclassOf<UDreamItem>ItemClass,constFString&AssetPath,constFString&AssetName){if(!ItemClass){UE_LOG(LogTemp,Error,TEXT("Func[%s]->TargetClass has...