private IEnumerator SequenceCoroutine(LoadingSequence loadingSequence) { StartCoroutine(LoadingBarCoroutine()); foreach (var sequenceElement in loadingSequence.Sequence) { _timeLastTipShown = Time.timeSinceLevelLoad; _loadBarQueue.Enqueue(sequenceElement.LoadBar); yield return(DisplayTipCoroutine(sequenceElement.Tip)); } if (loadingSequence.LevelToLoad == null) { yield break; } var level = Instantiate(loadingSequence.LevelToLoad); var door = level.GetComponentInChildren <DoorScript>(); door.OnDoorOpen += (sequence) => { Destroy(level); StartSequence(sequence); }; }
public void StartSequence(LoadingSequence loadingSequence) { Debug.Log($"Starting sequence: {loadingSequence.SequenceName}"); StartCoroutine(SequenceCoroutine(loadingSequence)); }