初始提交: UE5.3项目基础框架
This commit is contained in:
@ -0,0 +1,39 @@
|
||||
// Copyright 2020-2024 CesiumGS, Inc. and Contributors
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CesiumSampleHeightMostDetailedAsyncAction.h"
|
||||
#include "UObject/Object.h"
|
||||
#include "UObject/ObjectMacros.h"
|
||||
#include <functional>
|
||||
#include "SampleHeightCallbackReceiver.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class USampleHeightCallbackReceiver : public UObject {
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
using TFunction = std::function<
|
||||
void(const TArray<FCesiumSampleHeightResult>&, const TArray<FString>&)>;
|
||||
|
||||
static void
|
||||
Bind(FCesiumSampleHeightMostDetailedComplete& delegate, TFunction callback) {
|
||||
USampleHeightCallbackReceiver* p =
|
||||
NewObject<USampleHeightCallbackReceiver>();
|
||||
p->_callback = callback;
|
||||
p->AddToRoot();
|
||||
|
||||
delegate.AddUniqueDynamic(p, &USampleHeightCallbackReceiver::Receiver);
|
||||
}
|
||||
|
||||
private:
|
||||
UFUNCTION()
|
||||
void Receiver(
|
||||
const TArray<FCesiumSampleHeightResult>& Result,
|
||||
const TArray<FString>& Warnings) {
|
||||
this->_callback(Result, Warnings);
|
||||
this->RemoveFromRoot();
|
||||
}
|
||||
|
||||
TFunction _callback;
|
||||
};
|
||||
Reference in New Issue
Block a user