TArrayのソートについて

下記ドキュメントのソートの項は読みましたか?

構造体の配列をソートするだけであれば、別途構造体を書く必要はないと考えます
下記、こちらで試したコードのサンプルと結果です

構造体定義

struct FScore
{
	FScore(const uint32& ID, const float& PlayTime)
		: ID(ID), PlayTime(PlayTime) {}

	uint32 ID;
	float PlayTime;
};

テストコード

	TArray<FScore> Scores;

	FMath::RandInit(0);

	for (int i = 0; i < 5; ++i)
	{
		Scores.Add(FScore(i, FMath::FRandRange(0.0, 50.0)));
	}

	// ソート無しで出力
	UE_LOG(LogTemp, Log, TEXT("NO SORT"));

	for (auto Score : Scores)
	{
		UE_LOG(LogTemp, Log, TEXT("  - PlayTime=%f, ID=%d"), Score.PlayTime, Score.ID);
	}

	// 昇順ソート
	UE_LOG(LogTemp, Log, TEXT("SORT ASC"));
	Scores.Sort([](const FScore A, const FScore B) {
		return A.PlayTime < B.PlayTime;
	});

	for (auto Score : Scores)
	{
		UE_LOG(LogTemp, Log, TEXT("  - PlayTime=%f, ID=%d"), Score.PlayTime, Score.ID);
	}

	// 降順ソート
	UE_LOG(LogTemp, Log, TEXT("SORT DESC"));
	Scores.Sort([](const FScore A, const FScore B) {
		return A.PlayTime > B.PlayTime;
	});

	for (auto Score : Scores)
	{
		UE_LOG(LogTemp, Log, TEXT("  - PlayTime=%f, ID=%d"), Score.PlayTime, Score.ID);
	}

結果

LogTemp: NO SORT
LogTemp:   - PlayTime=0.057985, ID=0
LogTemp:   - PlayTime=11.778619, ID=1
LogTemp:   - PlayTime=32.407604, ID=2
LogTemp:   - PlayTime=3.718680, ID=3
LogTemp:   - PlayTime=13.512070, ID=4
LogTemp: SORT ASC
LogTemp:   - PlayTime=0.057985, ID=0
LogTemp:   - PlayTime=3.718680, ID=3
LogTemp:   - PlayTime=11.778619, ID=1
LogTemp:   - PlayTime=13.512070, ID=4
LogTemp:   - PlayTime=32.407604, ID=2
LogTemp: SORT DESC
LogTemp:   - PlayTime=32.407604, ID=2
LogTemp:   - PlayTime=13.512070, ID=4
LogTemp:   - PlayTime=11.778619, ID=1
LogTemp:   - PlayTime=3.718680, ID=3
LogTemp:   - PlayTime=0.057985, ID=0