我有两个结构体
USTRUCT(BlueprintType)
struct FLevelMapStruct : public FTableRowBase
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 LocationX;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 LocationY;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TSubclassOf<ATile> TileType;
};
USTRUCT(BlueprintType)
struct FLevelStruct : public FTableRowBase
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UDataTable* MapTable;
};
我想允许使用行结构FLevelStruct
创建的蓝图数据表只能在字段MapTable
中使用使用FLevelMapStruct
行结构创建的数据表。
有人能给我指出正确的方向吗?我该怎么做?
编辑:MapTable
需要能够指向蓝图数据表
2条答案
按热度按时间gab6jxml1#
我自己也遇到过这个问题,我相信我有答案(至少对我来说是UE 4. 26)。我看到一些帖子没有答案,所以我想我应该分享我的解决方案。
在
UPROPERTY
宏中添加meta=(RequiredAssetDataTags = "RowStructure=*YoureRowTypeHere*")
所以在你的例子中
请注意,
F
不包含在RowStructure的名称中,因此使用LevelMapStruct
而不是FLevelMapStruct
现在在编辑器中,你的属性应该只列出使用该类型的表。
tjjdgumg2#
对于使用虚幻5.1的自定义类,我使用以下代码:
同样的评论:请注意,
F
不包含在RowStructure的名称中,因此使用MyData
而不是FMyData
这是USTRUCT内部的工作,我用它创建了我的数据表。