예제 #1
0
 protected virtual void Start()
 {
     // 登録済みの GameObject にアタッチされている全ての IObservableStartMonoBehaviour Component から登録
     this.PreStartGameObjectList.SelectMany(x => x.GetComponents <IObservableStartMonoBehaviour>()).ToList().ForEach(x => this.OnStartObservableList.Add(x.OnStartAsObservable()));
     // 登録済みの ObservableLifecycleMonoBehaviour Component から登録
     this.PreStartComponentList.ForEach(x => this.OnStartObservableList.Add(x.OnStartAsObservable()));
     // 全ての先読み MonoBehaviour の Start() 呼び出しが完了したら処理を行う
     this.OnStartObservableList
     .WhenAll()
     .Subscribe(
         (_) => {
         this.OnStart();
         Started.OnNext(this);
         Started.OnCompleted();
     }
         );
 }