Fix crash with debug msg and fix state self transition issue
This commit is contained in:
parent
e032ddaaa5
commit
87c2aafd49
@ -35,6 +35,12 @@ void AFFPlayerController::FixedTick(float OneFrame)
|
||||
|
||||
bool AFFPlayerController::CheckInputSequences(const TArray<FFFInputSequence>& InputSequences)
|
||||
{
|
||||
// no input conditions to check
|
||||
if(InputSequences.IsEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
for(const FFFInputSequence& ThisInputSequence : InputSequences)
|
||||
{
|
||||
if(InputBuffer->CheckInputSequence(ThisInputSequence))
|
||||
|
@ -167,7 +167,8 @@ void UFFStateMachineComponent::FixedTick(float OneFrame)
|
||||
for(UFFState* ThisState : States)
|
||||
{
|
||||
// found a state
|
||||
if(ThisState->CanTransition(GetCurrentStateContext()))
|
||||
if(ThisState->CanTransition(GetCurrentStateContext()) &&
|
||||
(CurrentState->Name != ThisState->Name || ThisState->bCanTransitionToSelf))
|
||||
{
|
||||
StateToTransitionTo = ThisState;
|
||||
break;
|
||||
@ -176,8 +177,7 @@ void UFFStateMachineComponent::FixedTick(float OneFrame)
|
||||
|
||||
// Lastly just check if the state we're about to transition into isn't the current state.
|
||||
// It is OK to transition if state's "CanTransitionToSelf" is true
|
||||
if(StateToTransitionTo &&
|
||||
(CurrentState->Name != StateToTransitionTo->Name || StateToTransitionTo->bCanTransitionToSelf))
|
||||
if(StateToTransitionTo)
|
||||
{
|
||||
GoToState(StateToTransitionTo);
|
||||
}
|
||||
@ -213,7 +213,7 @@ void UFFStateMachineComponent::TickComponent(float DeltaTime, ELevelTick TickTyp
|
||||
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
|
||||
|
||||
// Debug
|
||||
if(StateMachineDebug)
|
||||
if(StateMachineDebug && CurrentState)
|
||||
{
|
||||
FString SMDebugString = "---State Machine Info---\n";
|
||||
SMDebugString.Append(FString::Printf(TEXT("Current State: %s\n"), *CurrentState->Name.ToString()));
|
||||
|
Loading…
Reference in New Issue
Block a user