์ ์ ๊ฐ์ ๋ด๋น๋ฅผ ์ํ ๊ธ์ด์์.
R3๊ฐ ๋ฌด์์ด๋, ๋ด๋น๋ ์ต์ ๋ฒ ํจํด์ด๋ ์คํธ๋ฆผ์ด๋ ์์กด์ฑ์ด๋ ๊ทธ๋ฐ ๊ฑฐ ๋ชฐ๋ผ๋ ๋ผ์.
R3๋ ๊ฐ์ด ๋ฐ๋๋ฉด ์๋์ผ๋ก ์๋ ค์ฃผ๋ ๋๊ตฌ๋ผ๊ณ ์๊ฐํ๋๋ก ํด์.
๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์, ์ค๋์ ์ฐธ๊ฐ์๋ค์ด์์.
์ฐ๋ฆฌ๊ฐ ์์ฃผ ์ง๋ฉดํ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ก ๋ค์ด ๋ณผ๊ฒ์.
ํ๋ ์ด์ด์ hp๋ฅผ UI๋ก ๋ณด์ฌ์ค์ผ ํ๋ ์ํฉ์ด์์.
๊ตฌ๊ตฌ๊ฐ๊ฐ์ ๊ตฌํ
๊ตฌ๊ตฌ๊ฐ๊ฐ๋ ํ๋ ์ด์ด์ UI๊ฐ ํ๋ ์ด์ด์๊ฒ ์ ๊ทผํด์ hp๋ฅผ ํ์ธํ๋๋ก ํ์ด์.
๊ทธ๋ฆฌ๊ณ Update ๋ฌธ์์ ๋งค ํ๋ ์๋ง๋ค ํ์ธํ๋๋ก ๊ตฌํํ์ด์.
๊ทธ ๊ฒฐ๊ณผ ์์ฃผ ์ ๋์ํ๋ UI๊ฐ ์์ฑ๋์ด์.
์ธ๋ฐ์์ด ๋งค ํ๋ ์ ์ฒดํฌํ๋ค, ์ฑ๋ฅ์ด ์ด๋ป๋ค๋ ๊ตฌ๊ตฌ๊ฐ๊ฐ์๊ฒ ๊ทธ๋ฐ ๊ฑด ๊ด์ฌ ์์ด์.
๋ฌธ์ ์ ๋ฐ์
๋งค ํ๋ ์๋ง๋ค ์ธ๋ฐ์์ด ์ฒดํฌํ๋ ์ ๋๋ ๋ฑํ ์์ฆ ์ธ์์์ ์ฑ๋ฅ์ผ๋ก ๋ฌธ์ ๋ ๊ฒ๋ ์๋์์ด์.
๋ค๋ง, hp ๋ณ๋์ด ์๊ธฐ๋ฉด ์ดํํธ๋ฅผ ์ฃผ๊ณ ์ถ์ด์ง๊ฑฐ์์.
๊ตฌ๊ตฌ๊ฐ๊ฐ๋ ์กฐ๊ธ ํ๋ค์์ง๋ง ๊ฒฐ๊ตญ ํด๋์ด์.
์ด์ ๊ฐ๊ณผ ํ์ฌ๊ฐ์ ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก์.
๋์ค์ mp, stamina๊ฐ ์๊ฒจ๋ ์ด๋ ๊ฒ ๋ ธ๊ฐ๋คํ๋ฉด ํด๊ฒฐ๊ฐ๋ฅํ๊ฑฐ์์.
๊ตฌ๊ตฌ๊ฐ๊ฐ๋ ๋ง์กฑํ์ด์.
๊ทผ๋ณธ ๋ฌธ์ ์ ๋ฐ์
ํ์ง๋ง ์ดํ, hp๊ฐ ์ฌ์๋๋ ๊ธฐ๋ฅ์ ๋ฃ์ ์๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋ฒ๋ ธ์ด์.
๋ชฌ์คํฐ์๊ฒ ๋ง์ ๋์์ ์ฒด๋ ฅ์ด ํ๋ณต๋์๋๋ฐ ์ฒด๋ ฅ์ด ๊ทธ๋๋ก์ธ๊ฑฐ์์.
๊ทธ๊ฒ ํ ํ๋ ์์ ๋์์ ์ผ์ด๋๋ฒ๋ ธ๊ณ , ์ฒด๋ ฅ์ ์ด์ ํ๋ ์๊ณผ ๋์ผํ ๊ฐ์ด ๋์ด๋ฒ๋ ธ์ด์.
UI๋ ๋ฌด์จ ์ง์ ํด๋ ๊ทธ ๋ณํ๋ฅผ ์์์ฐจ๋ฆด ์ ์์์ด์.
๊ตฌ๊ตฌ๊ฐ๊ฐ๋ ์ ๋งํ๊ณ ๋ง์์ด์.
์ผ์ค์ ๊ตฌํ
๋ฐ๋ฏธ์ง ๋ณ๋์ด์์ ๋๋ง๋ค TakeDamage ํจ์ ๋ด์์ ํ๋ ์ด์ด๊ฐ ui๋ฅผ ์ง์ ํธ์ถํด์.
๊ทธ ๊ฒฐ๊ณผ ์์ฃผ ์ ๋์ํ๋ UI๋ฅผ ์์ฑํ์ด์.
์์กด์ฑ์ด ์ด๋ป๊ณ ๊ฒฐํฉ๋๊ฐ ์ด๋ป๊ณ ๋ผ๋ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง๋ง, ์ผ์ค์๊ฒ ๊ทธ๋ฐ ๊ฑด ๊ด์ฌ ์์ด์.
์ ๋์ํ๋ฉด ๊ทธ๋ง์ด์์.
๋ฌธ์ ์ ๋ฐ์
์ด ๋, ์ผ์ค๊ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ฉด ๋ฌธ์ ๋ฅผ ๊ฒช์ ์ ์์ด์.
์ฒด๋ ฅ์ ํ๋ณต์ํค๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ค๊ณ ํด์.
ํ ํจ์๋ฅผ ์ถ๊ฐํ๊ณ hp๋ฅผ ์ฆ๊ฐ์์ผฐ์ด์.
๊ทธ๋ฐ๋ฐ view์ hp๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ๊น๋นกํด๋ฒ๋ฆฌ๊ณ ๋ง์์ด์.
๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ง๋ง, ๋คํํ ๊ฐ๋จํ ์์์ด๊ณ ๊ณง๋ฐ๋ก ๋์ ๋๋ ๋ฌธ์ ์ฌ์ ํด๊ฒฐํ์ด์.
๊ธฐ๋ฅ์ ์ถ๊ฐ
์ด๋ฒ์๋ UI๋ฅผ ํ๋ ๋ ์ถ๊ฐํ๊ณ ์ถ์ด์ก์ด์.
hp๋ฅผ ํ๋ฉด ์ข์๋จ ์ธ์ ๋จธ๋ฆฌ ์์๋ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ด์ง๊ฑฐ์์.
๋ฐ๋ผ์ ํ๋์ ui๋ฅผ ํ๋ ์ด์ด๊ฐ ๋ ์ฐธ์กฐํด์ฃผ์์ด์.
์ง๋ ์ค์๋ฅผ ์์ง ์๊ณ , ์ฝ๋๋ฅผ ์ ํํ ์ ์์ฑํ์ด์.
์ฐ๋ฆฌ๋ ์ด์ ๋ฌธ์ ๋ฅผ ๊นจ๋ฌ์์ด์.
๋๋ ui๋ฅผ ์ถ๊ฐํ๋๋ฐ ์ด์งธ์์ธ์ง ํ๋ ์ด์ด ์ฝ๋๋ฅผ ์์ ํด์ผํ๋ ์ํฉ์ด ์๊ฒจ๋ฒ๋ ธ์ด์.
์ง๊ธ์ ์ฝ๋๊ฐ ๋จ์ํด์ ํ ๋์ ๋ณด์ด์ง๋ง, ๋จผ ๋ฏธ๋์ ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ ์๊ฐ ๋จธ๋ฆฌ์ํ์ง๋ ์ํฉ์ด ๋ฐ์ํ ๊ฑฐ์์.
์ด๊ฒ์ด ๋ฐ๋ก ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ SOLID ์์น ์ค OCP์ ํด๋นํ๋ ๊ฐ๋ฐฉํ์์์น์ ์๋ฐํ๋ ์ฌ๋ก์ด๊ธฐ๋ ํด์.
ํ์ง๋ง ์ผ์ค๋ ๊ด์ฐฎ์์. ์ ๋์ํ๋ฉด ๋๋๊น์.
๋ฌ๊ป๋ฃฉ์ ๊ตฌํ
์์ ๋ ๋ฌธ์ ๋ฅผ ๊ฒช์ ๋ฌ๊ป๋ฃฉ์ ๊ฐํด์ก์ด์.
์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ฌํ๊ฑฐ์์.
์์์ ๊ฒช์๋ ๋ฌธ์ ๋ค์ด ๋ชจ๋ ํด๊ฒฐ๋์์ด์.
hp ๋ณ๋ ์๋ง๋ค ์ด๋ฒคํธ๋ง ์ด์ฃผ๋ฉด ๋๊ณ , ํ๋ ์ด์ด ๊ฐ์ฒด๋ UI๋ฅผ ์ ํ์๋ ์์ด์.
๋ฌ๊ป๋ฃฉ์ ๊ฐํด์ง๊ณ ๋ง์์ด์.
์ฌ์ํ ๋ฌธ์
ํ์ง๋ง ๊ธฐ๋ฅ์ด ์ปค์ง๋ค๋ณด๋ ์ฌ์ํ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ์ด์.
๊ตฌ๋ ํ๊ณ ํด์ ๋ ์ ๊ฒฝ์จ์ค์ผํ๊ณ , hp ๋ณ๋์๋ ๊ณณ๋ง๋ค ์ด๋ฒคํธ๋ ๊ฐ์ด ๋ฐ์์์ผ์ค์ผํด์.
๊ฒ๋ค๊ฐ ์๋ฌด๋ ๊ตฌ๋ ์ํ ๊ฒฝ์ฐ null ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ด๋ฒคํธ?.Invoke ํด์ฃผ๋ ๊ฒ๋ ์์ด๋ป์.
UI ์ชฝ์์๋ hp๊ฐ 30% ๋ฏธ๋ง์ด๋ฉด ์ํํ์๋ฅผ ํด์ฃผ๊ณ ์ถ์ด์ก์ด์.
๊ฒฐ๊ตญ ์ฝ๋ฐฑํจ์ ๋ด๋ถ์์ ์กฐ๊ฑด ๋ถ๊ธฐ๋ฅผ ํตํด ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์์ด์.
์กฐ๊ธ ์ง์ ๋ถํ์ง๋ง, ์ด์ ๊ฒช์๋ ๋ฌธ์ ๋ค์ ์๋ ๊ฒ ๊ฐ์์.
๋ฌ๊ป๋ฃฉ์ ๋ง์กฑํ์ด์.
ํ๋ณด๋ฏธ์ ๊ตฌํ
ํ๋ณด๋ฏธ๋ ๋ ๊น๋ํ ๊ฒ์ ์ฐพ์ ๋์ฐ์ด์.
๊ทธ๊ฒ์ด ๋ฐ๋ก R3!
์ด๋ฒคํธ์ ๋ถํธํ ๊ฒ๋ค์ ๋ด๋ถ์ ์ผ๋ก ์์์ ์ฒ๋ฆฌํด์ค์.
R3์ ์ด๋ฒคํธ, ๋์ ๋์ผํ ํํ์ด์์.
R3์์๋ ReactiveProperty๋ก ์ด๋ฒคํธ์ ๋ณ์๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์์ด์.
UI ์ชฝ๋ R3์ ์ด๋ฒคํธ๋ก ํํํด๋ณด์์ด์.
AddTo(this)๋ก ์ธํด ๊ฐ์ฒด๊ฐ ํ๊ดด๋ ๋ ์์์ Dispose๊ฐ ๋๋ฉฐ ๊ตฌ๋ ํด์ ๊ฐ ์ผ์ด๋์.
์ง๊ธ์ ์ต๋ํ ๊ฐ๋จํ๊ฒ ํํํ๊ธฐ ์ํด์ ์ด๋ ์ง๋ง, ์ด๋ค ๋๋์ธ์ง ์๊ฒ ์ฃ ?
ํ๋ณด๋ฏธ๋ ๋ง์กฑํ์ด์.
์ฐธ๊ณ ๋ก ๊ทธ๋ฅ Action์ ๋์ํ๋ ๊ฒ๋ค๋ ์กด์ฌํด์.
์ฌ์ค ์ง์ง ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค๋ ์กด์ฌํ์ง๋ง, ๊ทธ๊ฑด ๋ค์ ์๊ฐ์. (์์ง ๋ชจ๋ฆ)
๊ทธ๋ผ ์๋ !
์ง๊ธ๋น์ฅ์ค์น
GitHub - Cysharp/R3: The new future of dotnet/reactive and UniRx.The new future of dotnet/reactive and UniRx. Contribute to Cysharp/R3 development by creating an account on GitHub.github.com
๋ฐ๋ก ์ค์นํ๋ฌ๊ฐ ใ ใ
์ญ์ ์ธ๊ฐค 1ํ๊ฐ์ฌ์ ์์
1ํ๊ฐ์ฌ๊ฐ ๋๊ณ ์ถ๊พธ๋...