Как получить список StaticMesh из пути?

Я пытаюсь получить список Staticmesh от определенного пути и установить Staticmesh в 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 ‘для создания
указатель на член<

0

Решение

StaticMeshComponent->SetStaticMesh(MeshAssets.GetData);

Вы вызываете функцию без ( ) и возможные параметры.

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

должно работать в зависимости от того, должны ли быть какие-либо параметры.

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.
}
}
0

По вопросам рекламы [email protected]