0

我正在尝试从特定路径获取静态网格列表并将静态网格设置为 RootComponent。请帮助解决这个问题。代码如下;

 TArray<UObject*> MeshAssets;    
 EngineUtils::FindOrLoadAssetsByPath(TEXT("/Game/StarterContent/Meshs/"), MeshAssets, EngineUtils::ATL_Regular);
 StaticMeshComponent->SetStaticMesh(MeshAssets.GetData);
 StaticMeshComponent->AttachTo(RootComponent);

错误是

错误 2 错误 C3867: 'TArray::GetData': 函数调用缺少参数列表;使用 '&TArray::GetData' 创建指向 member<

4

2 回答 2

0

StaticMeshComponent->SetStaticMesh(MeshAssets.GetData);

您正在调用一个没有 the( )和可能参数的函数。

StaticMeshComponent->SetStaticMesh( MeshAssets.GetData( ) );

应该取决于是否还必须有任何参数。

于 2015-04-07T19:26:08.020 回答
0

您的代码存在一些问题:

  • 您的数组是 UObject* 类型,但您的组件需要类型为 UStaticMesh* 的对象。SetStaticMesh 方法不将 UObject* 作为参数。
  • 您只能将数组中的一项设置为组件的网格,例如 MeshAssets[0]。
  • GetData 是一种方法,而不是变量。如果你想使用它,你必须调用 MeshAssets.GetData()。

因此,您的代码应该看起来更像这样:

TArray<UObject*> MeshAssets;
EngineUtils::FindOrLoadAssetsByPath(TEXT("/Game/StarterContent/Meshs/"), MeshAssets, EngineUtils::ATL_Regular);
for (auto asset : MeshAssets) {
    UStaticMesh* mesh = Cast<UStaticMesh>(asset);
    if (mesh != nullptr) {
        // do something with the mesh, create a component with it, etc.
    }
}
于 2015-04-07T19:26:31.660 回答