You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- base class for StateTree tasks (GameplayInteractionStateTreeTask) - GameplayInteractions StateTree schema - supports StateTree common Tasks, Evaluators and Conditions + GameplayInteraction Tasks - requires two named external data items (Interactable actor and SmartObject claimed handle) - GameplayInteraction specific SmartObjectBehaviorDefinition to execute a StateTree - First pass of ContextualAnimStateTreeTask to play a scene from a ContextualAnimation scene asset #rnx #rb mikko.mononen #preflight 627510442e58cb727d38e384 [CL 20074106 by Yoan StAmant in ue5-main branch]
62 lines
2.0 KiB
C++
62 lines
2.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "GameplayInteractionsTypes.h"
|
|
#include "ContextualAnimStateTreeTask.generated.h"
|
|
|
|
class UContextualAnimSceneAsset;
|
|
class UAnimMontage;
|
|
|
|
USTRUCT()
|
|
struct FContextualAnimStateTreeTaskInstanceData
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
TObjectPtr<UContextualAnimSceneAsset> ContextualAnimAsset = nullptr;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
TObjectPtr<AActor> InteractableObject = nullptr;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
float Duration = 0.0f;
|
|
|
|
UPROPERTY()
|
|
float ComputedDuration = 0.0f;
|
|
|
|
/** Accumulated time used to stop task if a montage is set */
|
|
UPROPERTY()
|
|
float Time = 0.f;
|
|
};
|
|
|
|
|
|
USTRUCT(meta = (DisplayName = "Contextual Anim Task"))
|
|
struct FContextualAnimStateTreeTask : public FGameplayInteractionStateTreeTask
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
typedef FContextualAnimStateTreeTaskInstanceData InstanceDataType;
|
|
|
|
protected:
|
|
virtual bool Link(FStateTreeLinker& Linker) override;
|
|
virtual const UStruct* GetInstanceDataType() const override { return InstanceDataType::StaticStruct(); }
|
|
|
|
virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const EStateTreeStateChangeType ChangeType, const FStateTreeTransitionResult& Transition) const override;
|
|
virtual EStateTreeRunStatus Tick(FStateTreeExecutionContext& Context, const float DeltaTime) const override;
|
|
|
|
TStateTreeInstanceDataPropertyHandle<TObjectPtr<UContextualAnimSceneAsset>> ContextualAnimAssetHandle;
|
|
TStateTreeInstanceDataPropertyHandle<TObjectPtr<AActor>> InteractableObjectHandle;
|
|
TStateTreeInstanceDataPropertyHandle<float> DurationHandle;
|
|
TStateTreeInstanceDataPropertyHandle<float> ComputedDurationHandle;
|
|
TStateTreeInstanceDataPropertyHandle<float> TimeHandle;
|
|
|
|
TStateTreeExternalDataHandle<AActor> InteractorActorHandle;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName InteractorRole;
|
|
|
|
UPROPERTY(EditAnywhere, Category = Parameter)
|
|
FName InteractableObjectRole;
|
|
};
|