static์ด ์์ผ๋ฉด
ํด๋์ค๋ช .ํจ์();
์ด๋ ๊ฒ ์ฐ๊ณ
static์ด ์์ผ๋ฉด
๊ทธ ํด๋์ค ๋ด์์ ์์ฑ๋๊ฑธ gameobjectํ ํด์ ๊ทธ๊ฒ์ ์คํฌ๋ฆฝํธํด๋์ค์ ์๋ ํจ์๊น์ง ์ฐ๋๊ฒ ๊ฐ๋ฅํ๊ฑฐ์ผ?
์ด๊ฒ ๊ทธ ํด๋์ค ๋ด์์ ์์ฑ๋๊ฑฐ๋ผ ๊ฐ๋ฅํ๊ฑฐ์ผ? ์๋๋ฉด ์๋ ์ด๋ฐ์์ผ๋ก ํํด๋์ค์ ๊ฐ์ฒด๊น์ง ์์ฑํด์ ๊ฑฐ๊ธฐ์๋ ํจ์๊น์ง ์ธ ์ ์๋๊ฑฐ์ผ?
1. ๋ค๋ฅธ ํด๋์ค์ ํจ์๋ฅผ ์ฐ๊ณ ์ถ์ผ๋ฉด ์คํํฑ์ผ๋ก ๋ฝ์๋ด์. (๊ทธ๋ฐ ํจ์๋ค๋ง ๋ชจ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ค ํ๋ ๋ง๋ค์ด์ ์ฐ๋ฉด ์ข์) 2. ๊ทธ๊ฒ ์๋๋ผ๋ฉด ํญ์ ํด๋น ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ์ธ ์ ์์. ๊ฒ์ค๋ธ์ ํธ๋ฅผ ๋ณต์ ํ๊ฑฐ๋ ์์ฑํ๋ฉด ๋จ. 3. ํด๋น ํด๋์ค๊ฐ ์ ๋ํฐ์์ง์ ๋ํ ์ฐธ์กฐ๊ฐ ์๋ค๋ฉด(using UnityEngine ์ด ์๋ค๋ฉด) new ๋ฅผ ํตํด ํด๋น ํด๋์ค์ ๊ฐ์ฒด๋ง ํ๋ ์๋ก ์์ฑํด์ ์ธ ์๋ ์์. ๊ทธ๋ฌ๋ ๋ณ๋ก ์ข์ ๋ฐฉ์์ ๋ชป๋จ 4. ๋ ๊น์ด ๋ฐฐ์ฐ๊ณ ์ถ์ผ๋ฉด DIP๋ DI๋ฅผ ๊ฒ์ํด์ ๊ณต๋ถํ์ (์ข ๋ฉ๋ฆฌ ๋๊ฐ ๊ฒ ๊ฐ๊ธดํ๋ฐ ๋์ค์ ๋ฐฐ์ฐ๊ฒ ๋จ)
DIP : Dependency Inversion Principle ์์กด์ฑ ์ญ์ ๊ท์น DI : Dependency Injection ์์กด์ฑ ์ฃผ์
์คํํฑ ํจ์๋ ๊ฒ์ ์ผค๋ ๋ฉ๋ชจ๋ฆฌ์์ ํ๋๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฃผ์๋ง ์๋ฉด ๋๊ตฌ๋ ํธ์ถํด์ ์ธ ์ ์์. ๊ทธ๋์ ํด๋์ค๋ช .ํจ์๋ช () ์ผ๋ก ์ธ ์ ์๋๊ฑฐ์ผ. ๋ํ์ ์ผ๋ก Debug.Log()
ใณ. ๊ทผ๋ฐ ๋ฉ๋ชจ๋ฆฌ์์ ํ๋๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ฃผ์๋ง ์๋ฉด ๋๊ตฌ๋ ํธ์ถํ ์ ์๋ค.โ์ด๊ฒ ๋ฌด์จ ๋ง์ด์ผ? static์ด ํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด์์ฑ์ ์ํ๋ค๋๊ฑฐ๊น์ง๋ ์๊ณ ์๋๋ฐ
http://www.csharpstudy.com/CSharp/CSharp-static.aspx
๊ธ์์ Instantiate๋ฅผ ํ๊ณ ์๋๋ฐ ์ด๊ฑด ํด๋น ํด๋์ค ๋ด์์ ์์ฑํ๋๊ฒ ์๋๋ผ ์ ๋ํฐ ์์ง์๊ฒ ์ด๋ฐ ๊ฒ์ค๋ธ์ ํธ ํ๋๋ฅผ ์๋ก ์์ฑํด์ ์ฌ์ ๋ฟ๋ ค๋ฌ๋ผ๋ ๋ฉ์๋์ผ. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฐํ๊ฐ์ผ๋ก ํด๋น ๊ฒ์ค๋ธ์ ํธ์ ์ฐธ์กฐ๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒ์ค๋ธ์ ํธ๊ฐ ๊ฐ์ง ํจ์๋ฅผ ๋ถ๋ฌ์ธ ์ ์๋๊ฑฐ๊ณ .
์ง๊ธ์ฒ๋ผ ๊ณ์ ์ธ์คํด์์์ดํธํด์ผ๋๋ ํด๋์ค๋ ์ด๋ ๊ฒ ์ฐ๊ณ , ๋งค๋์ ์ญํ ์ํ๋ ํด๋์ค๋ ์ฑ๊ธํด์ค๋ธ์ ํธ๋ ์คํํฑ์ผ๋ก ์ฐ๊ฒ์ง - dc App