Fixed getter functions for the Sequence Player Library

#jira UE-139605
#rb aaron.cox, jose.villarroel
#robomerge UE5-Main
#preflight 61eb0e9145399e9f5040aa29

[CL 18694698 by koray hagen in 5.0 branch]
This commit is contained in:
koray hagen
2022-01-21 15:13:26 -05:00
parent f32cd3ee4e
commit 6594360caf
2 changed files with 34 additions and 35 deletions

View File

@@ -102,67 +102,66 @@ FSequencePlayerReference USequencePlayerLibrary::SetSequenceWithInertialBlending
return SequencePlayer;
}
float USequencePlayerLibrary::GetAccumulatedTime(const FSequencePlayerReference& SequencePlayer)
FSequencePlayerReference USequencePlayerLibrary::GetSequence(const FSequencePlayerReference& SequencePlayer, UAnimSequenceBase*& SequenceBase)
{
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetAccumulatedTime"),
[](FAnimNode_SequencePlayer& InSequencePlayer)
TEXT("GetSequence"),
[&SequenceBase](FAnimNode_SequencePlayer& InSequencePlayer)
{
return InSequencePlayer.GetAccumulatedTime();
SequenceBase = InSequencePlayer.GetSequence();
});
UE_LOG(LogSequencePlayerLibrary, Warning, TEXT("Could not get accumulated time on sequence player."));
return 0.f;
return SequencePlayer;
}
float USequencePlayerLibrary::GetAccumulatedTime(const FSequencePlayerReference& SequencePlayer)
{
float AccumulatedTime = 0.f;
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetAccumulatedTime"),
[&AccumulatedTime](FAnimNode_SequencePlayer& InSequencePlayer)
{
AccumulatedTime = InSequencePlayer.GetAccumulatedTime();
});
return AccumulatedTime;
}
float USequencePlayerLibrary::GetStartPosition(const FSequencePlayerReference& SequencePlayer)
{
float StartPosition = 0.f;
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetStartPosition"),
[](FAnimNode_SequencePlayer& InSequencePlayer)
[&StartPosition](FAnimNode_SequencePlayer& InSequencePlayer)
{
return InSequencePlayer.GetStartPosition();
StartPosition = InSequencePlayer.GetStartPosition();
});
UE_LOG(LogSequencePlayerLibrary, Warning, TEXT("Could not get start position on sequence player."));
return 0.f;
return StartPosition;
}
float USequencePlayerLibrary::GetPlayRate(const FSequencePlayerReference& SequencePlayer)
{
float PlayRate = 1.f;
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetPlayRate"),
[](FAnimNode_SequencePlayer& InSequencePlayer)
[&PlayRate](FAnimNode_SequencePlayer& InSequencePlayer)
{
return InSequencePlayer.GetPlayRate();
PlayRate = InSequencePlayer.GetPlayRate();
});
UE_LOG(LogSequencePlayerLibrary, Warning, TEXT("Could not get play rate on sequence player."));
return 1.f;
return PlayRate;
}
bool USequencePlayerLibrary::GetLoopAnimation(const FSequencePlayerReference& SequencePlayer)
{
bool bLoopAnimation = false;
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetLoopAnimation"),
[](FAnimNode_SequencePlayer& InSequencePlayer)
[&bLoopAnimation](FAnimNode_SequencePlayer& InSequencePlayer)
{
return InSequencePlayer.GetLoopAnimation();
bLoopAnimation = InSequencePlayer.GetLoopAnimation();
});
UE_LOG(LogSequencePlayerLibrary, Warning, TEXT("Could not get looping state on sequence player."));
return false;
}
UAnimSequenceBase* USequencePlayerLibrary::GetSequence(const FSequencePlayerReference& SequencePlayer)
{
SequencePlayer.CallAnimNodeFunction<FAnimNode_SequencePlayer>(
TEXT("GetSequence"),
[](FAnimNode_SequencePlayer& InSequencePlayer)
{
return InSequencePlayer.GetSequence();
});
UE_LOG(LogSequencePlayerLibrary, Warning, TEXT("Could not get sequence on sequence player."));
return nullptr;
return bLoopAnimation;
}

View File

@@ -60,6 +60,10 @@ public:
UFUNCTION(BlueprintCallable, Category = "Sequence Player", meta = (BlueprintThreadSafe))
static FSequencePlayerReference SetSequenceWithInertialBlending(const FAnimUpdateContext& UpdateContext, const FSequencePlayerReference& SequencePlayer, UAnimSequenceBase* Sequence, float BlendTime = 0.2f);
/** Get the current sequence of the sequence player */
UFUNCTION(BlueprintCallable, Category = "Sequence Player", meta = (BlueprintThreadSafe))
static FSequencePlayerReference GetSequence(const FSequencePlayerReference& SequencePlayer, UPARAM(Ref) UAnimSequenceBase*& SequenceBase);
/** Gets the current accumulated time of the sequence player */
UFUNCTION(BlueprintCallable, Category = "Sequence Player", meta = (BlueprintThreadSafe))
static float GetAccumulatedTime(const FSequencePlayerReference& SequencePlayer);
@@ -75,8 +79,4 @@ public:
/** Get the looping state of the sequence player */
UFUNCTION(BlueprintCallable, Category = "Sequence Player", meta = (BlueprintThreadSafe))
static bool GetLoopAnimation(const FSequencePlayerReference& SequencePlayer);
/** Get the current sequence of the sequence player */
UFUNCTION(BlueprintCallable, Category = "Sequence Player", meta = (BlueprintThreadSafe))
static UAnimSequenceBase* GetSequence(const FSequencePlayerReference& SequencePlayer);
};