c++ - 无法将景观 LayerInfo 对象分配给景观
问题描述
我一直在开发一个自动化系统,该系统需要我生成给定Landscape的LayerInfo对象。到目前为止,我已经能够生成所需的 LayerInfo 对象,但我无法分配它们,或者更准确地说,当我尝试在ULandscapeInfo 属性中分配必要的图层时,它们出现在编辑器中但不是分配,除非我保存它们并重新启动引擎,否则它们在编辑器中也会显得很奇怪,如图所示。我认为这与此线程中的问题类似。下面的代码负责分配LayerInfo:
// This method creates a
// new layer info object
UWorld * currentWorld = GetWorld();
ULevel * level = currentWorld->GetLevel(0); // TODO : just for debuging
ULandscapeLayerInfoObject* layerInfo = Landscape->CreateLayerInfo(*(layerName), level);
bool isDirty = layerInfo->MarkPackageDirty();
// Get a reference for the landscape Info
ULandscapeInfo* landscapeInfo = Landscape->GetLandscapeInfo();
landscapeInfo->CreateLayerEditorSettingsFor(layerInfo);
FLandscapeInfoLayerSettings* layerSettings = &landscapeInfo->Layers[1];
landscapeInfo->Layers[0] = FLandscapeInfoLayerSettings(layerInfo, Landscape);
UEditorAssetLibrary::SaveAsset(assetName, false);
// Assign the respective values
if (!layerSettings->LayerInfoObj)
{
layerSettings->Owner = Landscape;
layerSettings->LayerInfoObj = layerInfo;
layerSettings->bValid = true;
}
解决方案
推荐阅读
- javascript - 无法删除 contenteditable div 中的插入标签
- vue.js - 这个逻辑应该放在 Vuex store 中吗?我无法确定什么时候应该在商店或本地组件状态
- sas - SAS proc箱线图绘制多个变量
- python - 如何继承和覆盖第三方类方法以扩展其功能?
- android - 如何生成 POS 收据?
- c++ - 在 C++ 中,是否定义了通过 char* 删除原始类型(如 uint32_t)的行为?
- laravel - 清除配置缓存后出现数据库访问被拒绝错误
- llvm - 如何使自定义 llvm 通过更改控制流?
- javascript - 如何在 Sublime 文本上使用 Flask 后端编写 javascript/p5.js 代码时调试和获取错误消息?
- vba - 关于用VBScript编写代码创建提醒或警报的问题