diff --git a/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/AvatarCreatorStateMachine.cs b/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/AvatarCreatorStateMachine.cs index c9ac33b8..4f101491 100644 --- a/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/AvatarCreatorStateMachine.cs +++ b/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/AvatarCreatorStateMachine.cs @@ -103,7 +103,7 @@ private void Initialize() private void OnStateChanged(StateType current, StateType previous) { - backButton.gameObject.SetActive(!CanShowBackButton(current)); + backButton.gameObject.SetActive(CanShowBackButton(current, previous)); saveButton.gameObject.SetActive(current == StateType.Editor); if (current == StateType.End) @@ -112,9 +112,9 @@ private void OnStateChanged(StateType current, StateType previous) } } - private bool CanShowBackButton(StateType current) + private bool CanShowBackButton(StateType current, StateType previous) { - return current == StateType.LoginWithCodeFromEmail || current == StateType.AvatarSelection; + return current != startingState && current != previous; } public void OnCustomizeDraft(string avatarId) diff --git a/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/StateMachine/StateMachine.cs b/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/StateMachine/StateMachine.cs index fdf09094..8fbac9c4 100644 --- a/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/StateMachine/StateMachine.cs +++ b/Samples~/AvatarCreatorSamples/AvatarCreatorWizard/Scripts/UI/StateMachine/StateMachine.cs @@ -54,19 +54,12 @@ protected void ClearPreviousStates() public void GoToPreviousState() { var previousState = currentState; - + if (currentState == StateType.None || previousStates.Count == 0) return; + DeactivateState(stateTypeMap[previousState]); - - if (previousStates.Count == 0) - { - return; - } currentState = previousStates.Pop(); - if (currentState != StateType.None) - { - ActivateState(stateTypeMap[currentState]); - StateChanged?.Invoke(currentState, previousState); - } + ActivateState(stateTypeMap[currentState]); + StateChanged?.Invoke(currentState, previousState); } private void ActivateState(State state)