C++ 如何获取网格阵列的组件?
嘿 在下面的代码中,我试图获取UStaticMesh数组的组件,但得到如下错误 错误1错误C2338 GetComponents的“T”模板参数必须为 源于ActorComponent 在.h文件中C++ 如何获取网格阵列的组件?,c++,unreal-engine4,C++,Unreal Engine4,嘿 在下面的代码中,我试图获取UStaticMesh数组的组件,但得到如下错误 错误1错误C2338 GetComponents的“T”模板参数必须为 源于ActorComponent 在.h文件中 UPROPERTY() TArray<UStaticMeshComponent*> StaticMeshComponent; UPROPERTY() TArray<UStaticMesh*> StaticMesh; 在.CPP文件中 Stat
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调用函数。感谢您的清晰解释。我有了新的逻辑来解决这个问题。