なんだかんだ使うのでメモ。
構造体をソート
USTRUCT(BlueprintType)
struct FTestSortStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere)
int32 RatingValue = 1;
};
// 実際にソート OutArrayが結果
void UTestSortFuncLib::SortTestStruct
(
TArray<FTestSortStruct> InArray,
TArray<FTestSortStruct>& OutArray
)
{
TArray<FTestSortStruct> SortArray = InArray;
SortArray.Sort(UTestSortFuncLib::CompareTestStruct);
OutArray = SortArray;
}
// ソートの評価関数
/*static*/ bool UTestSortFuncLib::CompareTestStruct
(
const FTestSortStruct& A,
const FTestSortStruct& B
)
{
return A.RatingValue < B.RatingValue;
}
UObjectをソート
UCLASS()
class TESTBLOG_API UTestSortObject : public UObject
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere)
int32 RatingValue = 1;
};
// 実際にソート OutArrayが結果
void UTestSortFuncLib::SortTestObject
(
TArray<UTestSortObject*> InArray,
TArray<UTestSortObject*>& OutArray
)
{
TArray<UTestSortObject*> SortArray = InArray;
SortArray.Sort(UTestSortFuncLib::CompareTestObject);
OutArray = SortArray;
}
// ソートの評価関数
/*static*/ bool UTestSortFuncLib::CompareTestObject
(
const UTestSortObject& A,
const UTestSortObject& B
)
{
return A.RatingValue < B.RatingValue;
}