๋ง ๋ณต์กํ๊ณ ์ด๋ ค์ด ์ฐ์ฐ์ ์ฃผ๋ ์ฃผ๋ ์ฐ๋ฉด์ ํ์ธ๋ถ๋ฆด ํ์ ์์. ๋๋ฒ๊น ๋ง ํ๋ค๊ณ ์ ์ง๋ณด์๋ง ํ๋ค์ด์ง
๊ฒ์์์๋ CombineLatest ๊ฐ์ ์ฝ๊ณ ์ค์ฉ์ ์ธ ์ฐ์ฐ์ ํ๋๋ง ์จ๋ ์ถฉ๋ถย ย ย
ย ย ReactiveProperty<int> ์ก์๊ณ ๋ธ๋ฆฐ์ = new();
ย ย ReactiveProperty<int> ์ก์์คํฌ์ = new();
ย ย ReactiveProperty<int> ์ก์ํธ๋กค์ = new();
ย ย IDisposable ํ์คํธ๊ตฌ๋ ;
ย ย public void ํ์คํธ์์()
ย ย {
ย ย ย ย ์ก์๊ณ ๋ธ๋ฆฐ์.Value = 0;
ย ย ย ย ์ก์์คํฌ์.Value = 0;
ย ย ย ย ์ก์ํธ๋กค์.Value = 0;
ย ย ย ย ํ์คํธ์ ์์ด๋ณด์ด๊ธฐ();ย ย ย ย ย
ย ย ย ย ํ์คํธ๊ตฌ๋ = Observable.CombineLatest(
ย ย ย ย ย ย ์ก์๊ณ ๋ธ๋ฆฐ์, ์ก์์คํฌ์, ์ก์ํธ๋กค์, (๊ณ ๋ธ๋ฆฐ, ์คํฌ, ํธ๋กค) =>
ย ย ย ย ย ย (๊ณ ๋ธ๋ฆฐ, ์คํฌ, ํธ๋กค)ย
ย ย ย ย )
ย ย ย ย .Subscribe(์ก์๋ชฌ์คํฐ๋ค =>
ย ย ย ย {
ย ย ย ย ย ย ํ์คํธ์ ์์ด์ ๋ฐ์ดํธ();
ย ย ย ย ย ย if(์ก์๋ชฌ์คํฐ๋ค.๊ณ ๋ธ๋ฆฐ >= 10
ย ย ย ย ย ย && ์ก์๋ชฌ์คํฐ๋ค.์คํฌ >= 5
ย ย ย ย ย ย && ์ก์๋ชฌ์คํฐ๋ค.ํธ๋กค >= 3)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ํ์คํธ์๋ฃ(ํ์คํธ์์ด๋: "ํ ๋ฒํ์คํธ");
ย ย ย ย ย ย ย ํ์คํธ์ ์์ด์จ๊ธฐ๊ธฐ();ย ย
ย ย ย ย ย ย ย ํ์คํธ๊ตฌ๋ .Dispose();
ย ย ย ย ย ย };
ย ย ย ย });
ย ย }
ย ย // ๊ณ ๋ธ๋ฆฐ์ด ์๊ธฐ๊ฐ ์ฃฝ์ ๋๋ง๋ค
ย ย ์ก์๊ณ ๋ธ๋ฆฐ์.Value += 1;
๊ณ ๋ธ๋ฆฐ ์คํฌ ํธ๋กค 3๊ฐ์ ๊ฐ์ค ์๋ฌด๊ฑฐ๋ ํ๋๋ง ๋ฐ๋์ด๋
๊ฐย ReactiveProperty์ย ๋ง์ง๋ง๊ฐ์ด ๋ฐฐ๋ฌ๋จ
ํ์คํธ๊ตฌ๋ .Dispose() ์ดํ๋ก๋ ๋ฐ์ ์ํจ
๋๋ชจ๊น๋ํด