private void Start() { ProgressObservable .Where(_ => isTutorial) .Distinct() .DelayFrame(1) .Subscribe(async x => { flowchart.SetIntegerVariable(key, x); await UniTask.WaitUntil(() => !flowchart.GetExecutingBlocks().Any(b => b.BlockName == "Tutorial")); flowchart.ExecuteBlock("Tutorial"); }).AddTo(gameObject); flowchart.ObserveEveryValueChanged(f => f.GetIntegerVariable(key)) .Subscribe(v => ProgressObservable.Value = v).AddTo(gameObject); }