大家好,(新手学习UE4)本人在学习制作关卡类游戏demo时,设计是想在蓝图的父类里暴露一个选择关卡资源的接口,然后在切换Level时使用这个值来进行切换,即如何将物理路径转换为虚拟路径,“Content/Maps/ActionRPG_P.umap” 转换为“/Game/Maps/ActionRPG_P”
我的笨拙做法如下: (现在想问问大家有没有更好的解决版本。)
暴露给蓝图的接口
protected:
UPROPERTY(EditAnywhere, meta=(FilePathFilter = “umap”, RelativeToGameDir))
FFilePath LevelPath;
// 这个LevelPath在蓝图里配置后的形式可以是 Content/Maps/ActionRPG_P.umap
然后切换关卡时需要使用的字符串为 /Game/Maps/ActionRPG_P ,代码如下
LevelPath.FilePath = LevelPath.FilePath.LeftChop(5);//去掉.umap
LevelPath.FilePath = LevelPath.FilePath.RightChop(7);//去掉Content
LevelPath.FilePath = TEXT(“/Game”) + LevelPath.FilePath;//将 /Game 和 /Maps/ActionRPG_P 拼接起来
GetWorld()->ServerTravel(LevelPath.FilePath);
大家有没有更好的解决办法。(上面对应路径转换的方法有点硬编码了,感觉不好)