如何获取 UStaticMesh 数组的组件?
How to get components of UStaticMesh Array?
他,
在下面的代码中,我试图获取 UStaticMesh 数组的组件,但出现如下错误。
Error 1 error C2338: 'T' template parameter to GetComponents must be
derived from 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 UE Doc.
这是错误的:
GetComponents<UStaticMesh>(StaticMesh);
因为您可以在 UE Doc StaticMesh 中找到,StaticMesh 不是从 ActorComponent 派生的。
解法:
您只需在通过 CreateDefaultSubobject<...> 创建的每个 StaticMeshComponent 上调用 SetStaticMesh 函数即可。
他,
在下面的代码中,我试图获取 UStaticMesh 数组的组件,但出现如下错误。
Error 1 error C2338: 'T' template parameter to GetComponents must be derived from 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 UE Doc.
这是错误的:
GetComponents<UStaticMesh>(StaticMesh);
因为您可以在 UE Doc StaticMesh 中找到,StaticMesh 不是从 ActorComponent 派生的。
解法:
您只需在通过 CreateDefaultSubobject<...> 创建的每个 StaticMeshComponent 上调用 SetStaticMesh 函数即可。