// 注意,不可在异步线程中使用。
void SortActorHeight(TArray<AActor*>& ActorList)
{
// 转存到 SortList。
TArray<uint64> SortList;
for (int32 i = 0; i < ActorList.Num(); i++)
{
if (ActorList[i] != NULL)
{
SortList.Add((uint64)ActorList[i]);
}
}
// 执行排序:
{
SortList.Sort([](uint64 A, uint64 B) {
AActor* pA = (AActor*)A;
AActor* pB = (AActor*)B;
if (pA && pB)
{
return (pA->GetActorLocation().Z <= pB->GetActorLocation().Z);
}
return true;
});
}
// 转存到新数组:
ActorList.Empty();
for (int32 t = 0; t < SortList.Num(); t++)
{
ActorList.Add((AActor*)SortList[t]);
}
}
09-11
1763