[UE] C++ 構造体やUObjectをソートしたい

UnrealEngine

なんだかんだ使うのでメモ。

構造体をソート

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;
}

参考文献

タイトルとURLをコピーしました