【Unity】UniRxのSubjectで弾の破棄処理を行う! 【ObjectPool】
スポンサーリンク
UniRxのSubjectを使って弾の破棄処理を作成しました。
基本 : BulletObjectに記載する変数
IObservable<Unit> OnDelete は 削除信号を外部に連絡するGetterです。
関数
こちらは作らなくても構いません。
今回は複数箇所でdeleteSubjectを使用するため作成しました。
内容はOnNextを飛ばしているだけです。
Streamを流すタイミング
今回は2箇所で読んでいます。
1番目は一定時間経過したら破棄されます。
2番目は特定の相手と接触したら破棄されます。
今回はこの2箇所で破棄ストリームが宣言されます。
ObjectPool側の処理
今回のバレットはUniRxのObjectPoolを使用しています。
そのためこの様な形になりました。
FirstOfDefault() は 最初に流れてきたストリームのみ購読するという機能があります。
先ほどの2箇所で、ほぼ同時に条件が重なって削除ストリームが流れた場合、最初に流れてきた部分で削除処理を行います。