More control over playing a montage
This commit is contained in:
parent
28963c78e9
commit
d9ec367b82
@ -63,14 +63,7 @@ bool UFFState::CanTransition(const FFFStateContext& InStateContext)
|
|||||||
|
|
||||||
void UFFState::Enter(const FFFStateContext& InStateContext)
|
void UFFState::Enter(const FFFStateContext& InStateContext)
|
||||||
{
|
{
|
||||||
if(InStateContext.Avatar)
|
PlayMontage(InStateContext);
|
||||||
{
|
|
||||||
USkeletalMeshComponent* SMC = InStateContext.Avatar->GetComponentByClass<USkeletalMeshComponent>();
|
|
||||||
if(SMC && MontageToPlay)
|
|
||||||
{
|
|
||||||
SMC->GetAnimInstance()->Montage_Play(MontageToPlay);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
OnEnter(InStateContext);
|
OnEnter(InStateContext);
|
||||||
}
|
}
|
||||||
@ -180,6 +173,11 @@ void UFFState::RegisterInputHandler(const FFFInputSequence& InRequiredSequence,
|
|||||||
InputHandlers.Add(TempHandler);
|
InputHandlers.Add(TempHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UFFState::PlayMontage(const FFFStateContext& InStateContext)
|
||||||
|
{
|
||||||
|
OnPlayMontage(InStateContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void UFFState::OnInit_Implementation(const FFFStateContext& InStateContext)
|
void UFFState::OnInit_Implementation(const FFFStateContext& InStateContext)
|
||||||
{
|
{
|
||||||
@ -192,6 +190,19 @@ bool UFFState::OnCanTransition_Implementation(const FFFStateContext& InStateCont
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UFFState::OnPlayMontage_Implementation(const FFFStateContext& InStateContext)
|
||||||
|
{
|
||||||
|
if(InStateContext.Avatar)
|
||||||
|
{
|
||||||
|
USkeletalMeshComponent* SMC = InStateContext.Avatar->GetComponentByClass<USkeletalMeshComponent>();
|
||||||
|
if(SMC && MontageToPlay)
|
||||||
|
{
|
||||||
|
SMC->GetAnimInstance()->Montage_Play(MontageToPlay);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
UWorld* UFFState::GetWorld() const
|
UWorld* UFFState::GetWorld() const
|
||||||
{
|
{
|
||||||
UFFStateMachineComponent* SMC = Cast<UFFStateMachineComponent>(GetOuter());
|
UFFStateMachineComponent* SMC = Cast<UFFStateMachineComponent>(GetOuter());
|
||||||
|
@ -228,6 +228,16 @@ public:
|
|||||||
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
||||||
void OnUpdate(float OneFrame, const FFFStateContext& InStateContext);
|
void OnUpdate(float OneFrame, const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable, Category="UFF|State|Animations")
|
||||||
|
void PlayMontage(const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blueprint hook for overriding the logic for when a anim montage plays at the start of a state
|
||||||
|
* @param InStateContext
|
||||||
|
*/
|
||||||
|
UFUNCTION(BlueprintNativeEvent, Category="UFF|State|Events")
|
||||||
|
void OnPlayMontage(const FFFStateContext& InStateContext);
|
||||||
|
|
||||||
// TODO: document
|
// TODO: document
|
||||||
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
UFUNCTION(BlueprintImplementableEvent, Category="UFF|State|Events")
|
||||||
void OnLanded(const FHitResult& Hit, const FFFStateContext& InStateContext);
|
void OnLanded(const FHitResult& Hit, const FFFStateContext& InStateContext);
|
||||||
|
Loading…
Reference in New Issue
Block a user