Files
UnrealEngine/Engine/Source/Runtime/MovieSceneTracks/Private/Sections/MovieSceneCameraShakeSourceShakeSection.cpp
2025-05-18 13:04:45 +08:00

36 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Sections/MovieSceneCameraShakeSourceShakeSection.h"
#include "MovieSceneTracksComponentTypes.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneCameraShakeSourceShakeSection)
UMovieSceneCameraShakeSourceShakeSection::UMovieSceneCameraShakeSourceShakeSection(const FObjectInitializer& ObjectInitializer)
: Super( ObjectInitializer )
{
EvalOptions.EnableAndSetCompletionMode(EMovieSceneCompletionMode::ProjectDefault);
}
UObject* UMovieSceneCameraShakeSourceShakeSection::GetSourceObject() const
{
return ShakeData.ShakeClass;
}
void UMovieSceneCameraShakeSourceShakeSection::ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity)
{
using namespace UE::MovieScene;
const FBuiltInComponentTypes* BuiltInComponents = FBuiltInComponentTypes::Get();
const FMovieSceneTracksComponentTypes* TrackComponents = FMovieSceneTracksComponentTypes::Get();
const FGuid ObjectBindingID = Params.GetObjectBindingID();
FMovieSceneCameraShakeComponentData ComponentData(ShakeData, *this);
OutImportedEntity->AddBuilder(
FEntityBuilder()
.AddConditional(BuiltInComponents->GenericObjectBinding, ObjectBindingID, ObjectBindingID.IsValid())
.Add(TrackComponents->CameraShake, ComponentData)
);
}