Files
UnrealEngine/Engine/Source/Runtime/LevelSequence/Public/LevelSequenceBurnIn.h
2025-05-18 13:04:45 +08:00

51 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Templates/SubclassOf.h"
#include "LevelSequencePlayer.h"
#include "LevelSequenceActor.h"
#include "Blueprint/UserWidget.h"
#include "LevelSequenceBurnIn.generated.h"
/**
* Base class for level sequence burn ins
*/
UCLASS(MinimalAPI)
class ULevelSequenceBurnIn : public UUserWidget
{
public:
GENERATED_BODY()
LEVELSEQUENCE_API ULevelSequenceBurnIn(const FObjectInitializer& ObjectInitializer);
/** Initialize this burn in */
LEVELSEQUENCE_API void TakeSnapshotsFrom(ALevelSequenceActor& InActor);
/** Called when this burn in is receiving its settings */
UFUNCTION(BlueprintImplementableEvent, Category="Burn In")
LEVELSEQUENCE_API void SetSettings(UObject* InSettings);
/** Get the settings class to use for this burn in */
UFUNCTION(BlueprintNativeEvent, Category="Burn In")
LEVELSEQUENCE_API TSubclassOf<ULevelSequenceBurnInInitSettings> GetSettingsClass() const;
virtual TSubclassOf<ULevelSequenceBurnInInitSettings> GetSettingsClass_Implementation() const { return nullptr; }
protected:
/** Called as part of the game tick loop when the sequence has been updated */
LEVELSEQUENCE_API void OnSequenceUpdated(const UMovieSceneSequencePlayer& Player, FFrameTime CurrentTime, FFrameTime PreviousTime);
protected:
/** Snapshot of frame information. */
UPROPERTY(BlueprintReadOnly, Category="Burn In")
FLevelSequencePlayerSnapshot FrameInformation;
/** The actor to get our burn in frames from */
UPROPERTY(BlueprintReadOnly, Category="Burn In")
TObjectPtr<ALevelSequenceActor> LevelSequenceActor;
};