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

75 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Engine/EngineTypes.h"
#include "Sections/MovieScene3DConstraintSection.h"
#include "EntitySystem/IMovieSceneEntityProvider.h"
#include "MovieScene3DAttachSection.generated.h"
class AActor;
class USceneComponent;
/**
* A 3D Attach section
*/
UCLASS(MinimalAPI)
class UMovieScene3DAttachSection
: public UMovieScene3DConstraintSection
, public IMovieSceneEntityProvider
{
GENERATED_UCLASS_BODY()
public:
/**
* Sets the object to attach to
*
* @param InAttachBindingId The object binding id to the path
*/
void SetAttachTargetID(const FMovieSceneObjectBindingID& InAttachBindingID);
private:
virtual void ImportEntityImpl(UMovieSceneEntitySystemLinker* EntityLinker, const FEntityImportParams& Params, FImportedEntity* OutImportedEntity) override;
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
FName AttachSocketName;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
FName AttachComponentName;
#if WITH_EDITORONLY_DATA
UPROPERTY(transient)
bool bFullRevertOnDetach;
UPROPERTY(transient)
TSoftObjectPtr<USceneComponent> ReAttachOnDetach;
#endif
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EAttachmentRule AttachmentLocationRule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EAttachmentRule AttachmentRotationRule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EAttachmentRule AttachmentScaleRule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EDetachmentRule DetachmentLocationRule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EDetachmentRule DetachmentRotationRule;
UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="Attach")
EDetachmentRule DetachmentScaleRule;
};