์ผ๋จ ์๋ํฐ์์์ OnClick์ผ๋ก ํจ์๋ฅผ ์ง์ ๋์ด์ ๋ฌผ๋ฆฌ๋ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ผํ ๋ฐ
๋ง์ฝ ๊ทธ ๊ธฐ๋ฅ์ ์์ฐ๊ธฐ๋ก ๋ง์๋จน์๋ค๋ฉด (๊ทธ ์ด์ ๊ฐ ๋ญ๋ ๊ฐ์)
์์ฑํ ํจ์์ UI๋ฒํผํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ฝ๋๊ฐ ์ด๋์ ์ด๋คํํ๋ก๋ ์กด์ฌํ๊ฒ ์ง?
๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฒํผ ๋ชฉ๋ก์ enum์ผ๋ก ๋ง๋ค์ด์
๋ฒํผ ์ค๋ธ์ ํธ์ ๋ถ์ฌ๋์ ๋ฐ์ธ๋๊ฐ ๋ฒํผ์ ์ข ๋ฅ๋ฅผ ์ง๋ ฌํํด์ ์ฝ๋๋ก ๋๊ธฐ๊ณ
๊ทธ๊ฑธ ์ฝ๋์์์ switch case๋ก ํ๋จํด์ ์คํ์ํด
->์์งํ ์ด๋ถ๋ถ๋๋ฌธ์ ํจ์ ์ถ๊ฐ/์ ๊ฑฐํ ๋๋ง๋ค switch-case๋ฌธ ๊ฑด๋๋ ค์ผํ๋๊ฒ ์กฐ์กํด๋ณด์ฌ์ ์ง๋ฌธ๊ธ ์ฌ๋ฆฌ๋๊ฑฐ
๋ญ ์ ํํ์ย ๋ฐ๋ฆฌ์์ด์ ์ด ๋ฌดํํ ๋์ฌ ์ ์๊ฒ ์ง๋ง ๊ฒฐ๊ตญ ์ ๋ฒ ์ด์ค๋ก ๊ฐ๋ฉด switch-case ํน์ ๊ทธ ์ญํ ์ ํ๋ ๋ฌด์ธ๊ฐ์ ์ฌ์ฉ์ ํผํ ์ ์์
enum์ overrideํ ์ ์๋ ๊ด๊ณ๋ก ์ถ์ํ๋ ์ ํ์ ์. ๋ฒํผ ๊ฐ์๊ฐ ๋์ด๋๋ฉด enum์ด๋ ๊ฐ์ด switch-case๊ธธ์ด๊ฐ ๋ฌด์ํ๊ฒ ๊ธธ์ด์ง
๋ญ๊ฐ ์๋์ผ๋ก ํ๋จํด์ ๋ฌถ์ด์ฃผ๋๊ฒ ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์๋ฐ...
๋ค๋ค ์ด๋ค ๋ฐฉ์ ์ฐ๋? ์ถ์ฒ์ข ํด์ค
์ฐธ๊ณ ๋ก ํ๋ก์ ํธ์ ์ฝ๋ ๋๋ ํ๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐํ์์ ์ค๋ธ์ ํธ๋ ๋ณ์ ์ด๋ฆ์ผ๋ก ํ๋ณํด์ ๋ง๋ ํจ์๋ฅผ ์คํํ๋ค๊ฑฐ๋ ํ๋ ๋ฐฉ์์ ์ธ ์๊ฐ ์์...
๋ญํ๋๋ฐ switch๋ฅผ ์จ์ผํ๋์ง๋ฅผ ๋จผ์ ์์์ผํ ๊ฒ๊ฐ์๋ฐ? ์ค๋ง 0~100๋ฒ ๋ฒํผ ๊ตฌ๋ถํ๋๋ฐ ์ค์์น์ฐ๊ณ ์๋? ๊ทธ๋ผ ๊ฒฐ๊ตญ switch๋ฅผ ํผํ ์ ์์ ๊ฒ
์ฌ์ค ๋ง์. ๋ฒํผ ์ญํ ์ด ๊ฒน์น๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ผ๋๊น ๊ทธ๋ ๊ฒ ๋๋๋ผ
์ค์์น ์ซ์ผ๋ฉด ๋ฐฐ์ด์ฐ๋๊ฐ ๋์ ๋๋ฆฌ ์ฐ๋๊ฐ
๊ฒฐ๊ตญ์ ๊ทธ๋ ๊ฒ ๋ฌผ๋ฆฌ๋์๋ฐ์ ์๋...? ์์ ์ ์ด๋ค ๊ฐ์ ๋ณด๋๊น ์ค๋ธ์ ํธ ๋ณ์๋ช ์ด๋ ํจ์๋ช ์ ์ผ์น์์ผ์ ๋ฐํ์์ ์ฐพ๊ฒ ํ๋๊ฒ๋ ์์ด์ ํจ์ฌ ๊น๋ํด๋ณด์ด๋๋ฐ ๋๋ ๊ทธ ๋ฐฉ๋ฒ์ ์ฐ๊ธฐ๊ฐ ์ด๋ ค์์
์ค์กฐ์ค์ต๊ฐ ใ ใ ในใ ใ
๋๋ ์ฌ๊ธฐ๋ ํ๊ณ ๊ทธ๋ฌ์ค๋ฏ
์๋ ์ค์กฐ์ค์ต์ ์ผ๋ถ๋ฌ ์ด๊ฑด๋ฐ ๋ฌด์จ 2019๋ ์์ ์๋; ์ "๋ถํธ"ํ๋ฉด ์ง์๋๋ฆผ
2019๋ ์์ ์ค์ฌ? ์ฌ๊ธฐํ๋ผ๋๊ฒ ๋ถํธํ์ฌ?
์ฌ๊ธฐํ๋ผ๋ ธ ์ด๊ธฐ - dc App
๊ฐ๋ง๋ณด๋ฉด ์ด๊ฐค๋ ์์ธ๋ก ์ ์ ๋ณ์๋ค ๋ง๋ค ใ ใ ใ ใ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
OnClick๋ก GUI์์์ ๋ฌผ๋ฆฌ๋๊ฒ ์๋๋ผ๋ฉด ๊ฒฐ๊ตญ ์ ์ ๊ฐ ์ ๋ ฅํ ํด๋ฆญ์ด ์ฝ๋์ ํน์ ํจ์์ ์คํ์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋ ผ๋ฆฌ๊ฐ ์์ ๊ฑฐ๋ผ๋ ๋ป์ธ๋ฐ ๊ทธ ๋ฐฉ๋ฒ๋ก ์ ๊ดํ ์ง๋ฌธ์ด์ง
๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฒํผ ๋ชฉ๋ก์ enum์ผ๋ก ๋ง๋ค์ด์ ๋ฒํผ ์ค๋ธ์ ํธ์ ๋ถ์ฌ๋์ ๋ฐ์ธ๋๊ฐ ๋ฒํผ์ ์ข ๋ฅ๋ฅผ ์ง๋ ฌํํด์ ์ฝ๋๋ก ๋๊ธฐ๊ณ ๊ทธ๊ฑธ ์ฝ๋์์์ switch case๋ก ํ๋จํด์ ์คํ์ํด -> ๋๋ ์ด๋ ๊ฒ ์ํ ๋ฏ.. ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ก ๊ฒฝ์ ํด์ ์ด๋ฒคํธ ํธ๋ค๋ง ํ๋ฉด ํธํ์ง ์์?
์ค ์ง๊ธ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ ์์๋ณด๋ ์ค์ธ๋ฐ ์ข๋ง ๋ ์์ธํ ์ค๋ช ํด ์ค ์ ์์?
https://youtu.be/WLDgtRNK2VE?t=356
์ฌ๊ธฐ
๋ณด๋ฉด ๊ฐ์ด ์ฌ๋ฏ. ๊ทผ๋ฐ ์ฌ๊ธฐ์ ๋ฒํผ์ OnClick์ชฝ์ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ์ค์ ํ๋๋ฐ, OnClick ์์ด๋ค๊ณ ํ์ง?
๊ทธ๋ผ ๋ญ ์ข๋ง ๋ ๊ถ๋ฆฌํด์ ๋ฒํผ์ ํด๋ฆญํ ๋ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ์ ํน์ ์ด๋ฒคํธ๋ฅผ raise ํ๊ฒ ํ๊ณ , ๋๊ฐ ํ๊ณ ์ถ๋ค๋ Switch ๋ถ ์กฐ๊ฑด๋ค์ delegate ์ชฝ์ผ๋ก ๋ฑ๋ก์ํค๋ฉด ๊นจ๋ํ๊ฒ ํ๋ฆฌ์ง ์์๊น
์ผ์ ๋ญ๊ฐ ์๊ฒ๋ ๊ฐ๊ณ ํท๊ฐ๋ฆฌ๊ธฐ๋ ํ๊ณ ์ํผ ๊ณ ๋ง๋ค ใ ใ ์ง๊ธ ์ผํ ์๊ฐํ๊ธฐ์ OnClick ์์ด ๊ฐ๋ ค๋ฉด ํน์ ์ด๋ฒคํธ๋ฅผ raiseํ๋ ๊ณผ์ ์์ ๋ switch-case๊ฐ ๋ฑ์ฅํด์ผ ํ์ง ์๋ ์ถ๊ธฐ๋ ํ๋ฐ...
์ค์์น๋ถ ์ฐ๊ธฐ ์ซ์ SO ์์ ์ด๋ฒคํธ๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ํด์, ๊ฐ ๋ฒํผ์ด ๋ค๋ฅธ ์ด๋ฒคํธ๋ฅผ raise ํ๋๋ก ํ๋ฉด ๋์ง ์์๊น? SO event ์ฐ๋ ์ด์ ๊ฐ ์์กด์ฑ์ ์์ ๊ธฐ ์ํ๊ฑด๋ฐ, switch ๋ค์ด๊ฐ๋ฉด ํ๋์ฝ๋ฉ์ผ๋ก ๋ ์์กด์ฑ ๋ฐ์ํ ๊ฑฐ ๊ฐ์๋ฐ
๋ฏธ์, ์์ ๋์ ์๋ชป ์ ์๋๋ฐ "SO์์" ๊ฐ ์๋๋ผ, SO๋ฅผ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด์ ์ด๋ฒคํธ ๋ฐ์ํ๋ ๋ฒํผ์ ๋ถ์ธ๋ค๋ ๊ฑฐ์์
๋ง์ฝ์ ์ ๋์์ ์ ์ดํด์๋๋ฉด ์ด๊ฑฐ๋ ๊ฐ์ด๋ด๋ผ
https://unity.com/how-to/architect-game-code-scriptable-objects#code-example-gameevent-scriptableobject
์ ๋ฏธ์. ๋ ๋๋๊ธ ๋ฌ๊ธฐ ์ ์ ์์ ๋๊ธ ์ง์ฐ๋ ค ํ๋๋ฐ ํ์ด๋ฐ์ด ์์ข์๋ค;;;
MVVM ํจํด ๊ณต๋ถํ๋๊ฒ ์ข์๋ฏ. ๋ฒํผ ํ๋ ๋๋ฌธ์ ์ด๋ฐ ๊ณ ๋ฏผํ๊ณ ์๋๊ฑฐ๋ฉด ์ ์ด์ ์ค๊ณ๊ฐ ์๋ชป๋๊ฑฐ์
๊ฐ์ธ์ ์ผ๋ก ํจํด์ '๊ณต๋ถ'ํ๋ค๋๊ฑด ๋ณ๋ก๋ผ๊ณ ์๊ฐํ๋์ชฝ์ธ๋ฐ ์ง์ ๋๋ฆฌ๋ ์ฉ๋๋ก ๋ณด๋๊ฑด ๊ฐ์ถํจ