protected override void doAwake() { _State = FlowState.Idle; FlowHistory = new List <Flow>(); CurrentFlow = Flow.Init; NextFlow = Flow.None; _OnChangeFlowEvent = null; Next(CurrentFlow); }
public void NextAsync(Flow nextFlow, onChangedFlow onChanged = null) { bool isFailed = false; isFailed = isFailed | _State != FlowState.Idle; isFailed = isFailed | (((int)nextFlow < 0) || ((int)nextFlow >= SceneNames.Length)); if (isFailed) { onChanged?.Invoke(false); return; } _OnChangeFlowEvent = onChanged; _State = FlowState.NextAsyncLoading; NextFlow = nextFlow; StartCoroutine(loadScene()); }
public void BackAsync(onChangedFlow onChanged = null) { bool isFailed = false; isFailed = isFailed | _State != FlowState.Idle; isFailed = isFailed | (FlowHistory.Count < 1); if (isFailed) { onChanged?.Invoke(false); return; } int index = FlowHistory.Count - 1; var next = FlowHistory[index]; _OnChangeFlowEvent = onChanged; _State = FlowState.BackAsyncLoading; NextFlow = next; StartCoroutine(loadScene()); }