この記事でのバージョン
Unity 2021.3.4f1
はじめに
UniRxはUpdateAsObservableを使う事で簡単にUpdateをストリーム化する事ができ、
さらにFirstを組み合わせる事で条件が揃った時に1度だけ処理をするという実装が簡単に出来ます。
private bool _flag = false; private void Start() { //_flagがtrueになった時になんか処理する this.UpdateAsObservable() .First(_ => _flag) .Subscribe(_ =>{ /*なんか処理*/ }); }
しかしその条件が揃って処理が行われる前に
シーン遷移やUnityエディタを停止してオブジェクトが破棄されると以下のようなエラーが出ます。
InvalidOperationException: sequence is empty
UniRx.InternalUtil.ExceptionExtensions.Throw
今回はそういう場合の原因と対処法です!