์๊ธ: https://cafe.naver.com/unityhub/133513
์ธ์คํํฐ์์ ์ค์ ํ SerializeField ๊ฐ์ด Script์ ์ ์ฉ๋์ง ์์์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค....
์ ์ธ์คํํฐ์์ ์บ์ฑํ ๊ฐ์ด ์๋ํ์ง ์๋ ๊ฑธ๊น์??????
--------------------------------------------------
๊ฐ์ฌํฉ๋๋ค ์ฌ๋ฌ๋ถ! ์ ์ด์ ์ด ๋ฉ์ฒญํ ์ฑ๊ธํค ์ฝ๋ ๋๋ฌธ์ ์ฅ์ฅ 16์๊ฐ์ด๋ผ๋ ์๊ฐ์ ํ๋นํ์ต๋๋ค! ์๋! ์น์ผ! ์๋ฐ!
์ฌ๋ฌ๋ถ ๋๋ถ์ ์ฑ๊ธํค ์ฝ๋๋ฅผ ๊ตฌ๊ธ๋งํด์ ๋์ถฉ ๋ฐ๊พธ์ด๋ณด๋ ํด๊ฒฐ๋์์ต๋๋ค ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!!
์นดํ๊ฐ์ ํด์ผ ๊ธ๋ณผ์์๋ค ใ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
ํ ์ฃ์กํฉ๋๋ค
์์ ํ์ต๋๋ค!!!
๊ทธ๋๋ ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค์... ใ ใ
instance ์์ฑํ ๋ new() ํด์ ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋๋๊ฑฐ ์๋?
์ฑ๊ธํค ๋ถ๋ถ์ ํ์ ์น๊ตฌ๊ฐ ์ง์ค ๊ฑฐ๋ผ์ ๋ฌด์์ ๋ฏฟ๊ณ ์ฐ๊ณ ์๊ธด ํฉ๋๋ค์...
TurnManager ์คํฌ๋ฆฝํธ์์ Awake() ์์ instance = this; ์ด๋ฐ์์ผ๋ก ์จ์คฌ์?
์๋จ ์์ ์ค์ท ์ฌ๋ฆฐ ๊ฒ ์ฒ๋ผ ์ฑ๊ธํค ๋ฒ ์ด์ค ํ๋ ๋ง๋ค๊ณ ์์์์ผฐ์ด์!
TurnManager ์คํฌ๋ฆฝํธ์์ Private void Awake() {
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ์ฐธ๊ณ ํ๋๋ก ํ๊ฒ ์ต๋๋ค! ํ์ง๋ง ๋ค๋ฅธ ๋งค๋์ ๋ค๋ ๋์ผํ๊ฒ ์์๋ฐ์ ์ํ์์ ์ธ์คํํฐ์์ ์บ์ฑ์ด ์ ์ด๋ฃจ์ด์ง๋๋ฐ ์ ํด ๋งค๋์ ๋ง ๊ทธ๋ด๊น์??
๋น๋ฐ๋ฒํธ ๊น๋จน์ด์ ์ง์ฐ์ง๋ฅผ ๋ชปํ๋ค ์๋ฌดํผ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ฅผ ๋ด์ผ ์๊ฒ ๋๋ฐ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์์๋ instance ๋ฅผ ์ง์ ํด์ฃผ๋ ์ฝ๋๊ฐ ์๋๋ฐ๋ ์ ๋๋๊ฑฐ์?
๋ค๋ค ๋์ผํ SingletonMonoBase๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค!
์, ์ผ๋จ ์ฑ๊ธํค ์ชฝ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ผ๋๊น ๊ทธ์ชฝ์ ํ๋ฒ ์๋ด๋ณด๊ฒ ์ต๋๋ค!
์ฌ๋ฐ! ์งํ์! ๊ฐ์ฌํฉ๋๋ค ์ฌ๋ฌ๋ถ!
์ ๊ธฐ ์๋ํฐ์ ๊ฒฝ๊ณ ๊ฐ ๋์ด: "You are trying to create a MonoBehaviour using the new keyword"
MonoBehaviour๋ ์ ์ด์ new๋ก ๋ง๋ค๋ฉด ์ ๋๋ก ๋์ํ์ง ์๋๋ก ๋์ด์์. MonoBehaviour๋ฅผ ์์ํ ๊ฒ๋ ๋ง์ฐฌ๊ฐ์ง๊ณ .
๋ชจ๋ ธ๋นํค์ด๋น์ด๋ฅผ ์์ํ๋ ๊ฑด ๊ด์ฐฎ์ ๊ฑฐ ๊ฐ๋๋ผ๊ตฌ์
๊ฑฐ๊ธฐ๋ค ๋ฌธ์ ์ธ๊ฐ ์ง๊ธ Hierarchy์์ ์ด MonoBehaviour (TurnManager)๋ฅผ GameObject์ ๋ฌ์๋๊ณ Inspector์์ ๊ฐ์ ์์ ํ๋ค? ์ด๋ฌ๋ฉด ์ง๊ธ ๋ ๋ฒ์ด ๋ง๋ค์ด์ง๋ ์ํฉ์. Hierarchy์ ๋ง๋ค์ด ๋์ ๊ฒ ํ๋์ TurnManager.Instance๋ฅผ ๋ถ๋ฅผ ๋ new๋ก ๋ง๋ค์ด์ง๋ ์ ๋๋ก ๋์ํ๋ ๊ฒ ํ๋
MonoBehaviour๋ฅผ ์์กํ๋ ์ฑ๊ธํด์ ๋ง๋ค๋ ค๋ฉด new GameObject("์ด๋ฆ").AddComponent()๊ฐ์ ์์ผ๋ก ๋ง๋ค์ด์ผ ํจ. ๊ทผ๋ฐ ์ด๋ ๊ฒ ๋๋ฉด Hierarchy ์์ ๋ฏธ๋ฆฌ TurnManager๋ฅผ ๋ฌ์๋๊ณ Inspector์์ ๊ฐ์ ์์ ํ ์ ์์ง.
์ด... ๊ทธ๋ฌ๋๊น ๋น ๊ฒ์ ์ค๋ธ์ ํธ ํ๋์๋ค๊ฐ ํด๊ฒฐ ๋๊ธฐ ์ ์ ์ฝ๋๋ฅผ ์ปดํฌ๋ํธ๋ก ๋ถ์ฌ๋์ผ๋ฉด 2๊ฐ ์ด์ ์์ฑ์ด ๋์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค---๋ผ๋ ๊ฑด๊ฐ์ฉ?
์ฑ๊ธํด + MonoBehaviour๋ฅผ ์ฐ๋ ค๋ ๊ฒฝ์ฐ๋ ๋ณดํต ์ฑ๊ธํด์์ Awake, Start, Update๊ฐ์๊ฑธ ํ๊ณ ์ถ๋ค..์ธ๋ฐ, ๋ ๊ฐ๋ฅผ ๋ถ๋ฆฌํ๋ ์ง, TurnManager๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์ด ๋ง์ง ์๋ค๋ฉด ์ฌ์ฉํ๋ ๊ณณ์์ TurnManager๋ฅผ ์ง์ ์ฐธ์กฐํ๊ฒ ๋ง๋ค๋ ์ง, ScriptableObject๋ก ์์กด์ฑ์ ๋์ด์ฃผ๋ ์ง ํ๋๊ฒ ๋์ ๊ฒ ๊ฐ์.
๋นก๋๊ฐํต์ด๋ผ์ ์ดํด๋ ๋ชป ํ์ง๋ง ๊ฐ์ฌํฉ๋๋ค!
์ง๊ธ ์ฝ๋ ์์ผ๋ก๋ SingletonMonoBase์ ์ ์ธ๋ Instance๋ฅผ (TurnManager.Instance) ์ด๋์ ๊ฐ ๋ถ๋ฅผ๋ new๋ฅผ ํตํด ํ๋ ์์ฑํ ๊ฒ์. ์๋ Inspector์ ๊ฐ์ ์ค์ ํด๋์ ์ ๋์ ์ ํ ๋ค๋ฅธ ์
์ ์์ ๋ ์ฝ๋ ์ง๊ธ ๋ดค๋ค. ์ ๋ ๊ฒ ํ๋ฉด ์ด์ Inspector์์ ๊ฐ์ ์ค์ ํด๋์ ์ ๋ฅผ ์ฐพ์์ instance์ ๋ฃ์ผ๋๊น ๊ด์ฐฎ์
๊ฐ์ฌํฉ๋๋ค.,..๊ฐ์ฌํฉ๋๋ค... ใ ใ ใ ใ ใ ใ ใ ใ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋ชฐ๋์ง๋ง ์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉใด๋ใ !!!