C++ 如何获取网格阵列的组件?

C++ 如何获取网格阵列的组件?,c++,unreal-engine4,C++,Unreal Engine4,嘿 在下面的代码中,我试图获取UStaticMesh数组的组件,但得到如下错误 错误1错误C2338 GetComponents的“T”模板参数必须为 源于ActorComponent 在.h文件中 UPROPERTY() TArray<UStaticMeshComponent*> StaticMeshComponent; UPROPERTY() TArray<UStaticMesh*> StaticMesh; 在.CPP文件中 Stat

在下面的代码中,我试图获取UStaticMesh数组的组件,但得到如下错误

错误1错误C2338 GetComponents的“T”模板参数必须为 源于ActorComponent

在.h文件中

UPROPERTY()
        TArray<UStaticMeshComponent*> StaticMeshComponent;
UPROPERTY()
        TArray<UStaticMesh*> StaticMesh;
在.CPP文件中

StaticMeshComponent = TArray<UStaticMeshComponent*>();
StaticMeshtemp = TArray<UStaticMesh*>();

for (int32 i = 0; i < 3; i++)
{
    GetComponents<UStaticMeshComponent>(StaticMeshComponent);
    StaticMeshComponent[i] = CreateDefaultSubobject<UStaticMeshComponent>(temp);

    GetComponents<UStaticMesh>(StaticMesh);
    StaticMesh[i] = Cast<UStaticMesh>(StaticLoadObject(UStaticMesh::StaticClass(), NULL, *SMPath));

是否有其他函数或方法获取UStaticMesh阵列的组件

我认为没有必要这样做:

StaticMeshComponent = TArray<UStaticMeshComponent*>();
StaticMeshtemp = TArray<UStaticMesh*>();
这两个数组都是在运行构造函数之前初始化的

问题:

此代码正常:

 GetComponents<UStaticMeshComponent>(StaticMeshComponent);
 StaticMeshComponent[i] = CreateDefaultSubobject<UStaticMeshComponent>(temp);
StaticMeshComponent派生自ActorComponent

这是错误的:

 GetComponents<UStaticMesh>(StaticMesh);
因为您可以在中找到,StaticMesh不是从ActorComponent派生的

解决方案:


您只需对通过CreateDefaultSubobject创建的每个StaticMeshComponent调用函数。

感谢您的清晰解释。我有了新的逻辑来解决这个问题。