如何获取 UStaticMesh 阵列的组件
How to get components of UStaticMesh Array?
Hej,
在下面的代码中,我正在尝试获取 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 UE Doc。
这是错误的:
GetComponents<UStaticMesh>(StaticMesh);
因为正如你在UE Doc StaticMesh中发现的那样,StaticMesh不是从ActorComponent派生出来的。
溶液:
您所需要的只是在通过 CreateDefaultSubobject<...> 创建的每个 StaticMeshComponent 上调用 SetStaticMesh 函数。
相关文章:
- OpenMP阵列性能较差
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- 没有从阵列<float>到阵列<int>的可行转换
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 数组类 阵列的打印输出
- 从较小的阵列到较大的阵列的元素级转换
- 仅在大型阵列上出现合并排序分段错误
- 从阵列C++中删除重复项
- 阵列的大小在C++中是否灵活?
- 反转阵列中的正序列
- 具有可变尺寸的 C++ 2D 阵列
- 二维阵列的动态分配
- 如何获取 UStaticMesh 阵列的组件