应用场景
需要在编辑器、运行时都能获取到流送关卡的资产名称,而非带有路径的名称或者编辑器拷贝对象名称。
难点
编辑器上,流送关卡名称会因为编辑器自己复制一份流送关卡导致关卡资产的包名称发生变化,例如增加UEDPIDd_0_等。该前缀,运行时没有。
运行时:大多数带有路径。
方法
找不到一个通用的接口或者属性可以满足编辑器和运行时,所以分开处理两种情况啦。示例代码如下:
// 遍历所有流关卡(包括尚未加载的)
for (ULevelStreaming* StreamingLevel : PersistentWorld->GetStreamingLevels())
{
//如果StreamingLevel的关卡名在LevelNameArray中,则在加载前设置不可见
#if WITH_EDITOR
LevelObjectName = FPackageName::GetShortName(StreamingLevel->PackageNameToLoad); //打包后,会变成相对路径,无法匹配
#else
LevelObjectName = FPackageName::GetShortName(StreamingLevel->GetWorldAssetPackageName());
#endif`
UE5.3流送关卡名称获取:运行时与编辑器兼容
2万+

被折叠的 条评论
为什么被折叠?



