์ข ์ด๋ ค์ด ๊ฐ์ ๋ณด๊ณ ์ถ์ด์ ์ ๋ฐ๋ฏธ ์ ๋ํฐ ์์ด ๊ฐ์ข ๋ณด๋๋ฐ ๋์ถฉ ์ถ์ํ ์ ๋ค๋ฆญ ํด๋์ค ํ๋ ๋ง๋ค๊ณ ์์์ ๊ทผ๋ฐ
์ ๋ค๋ฆญ์ด๋ where์ ๋ชจ๋ฅด๋ ๊ฐ๋
์ด๋ผ ๋ฐ๋ก ์ฐพ์๋ณด๋๋ฐ ๊ถ๊ธ์ฆ์ด ์๊น ์์์์ ์ฝ๋๋ฅผ
public abstract class ๋์ถฉํด๋์ค์ด๋ฆ<T> : MonoBehaviour where T: MonoBehaviour ์ด๋ ๊ฒ ์ฐ๋๋ฐ
๊ตณ์ด MonoBehaviour๋ฅผ ๋ฐ๋ก ์์์ ๋ฐ์์ผํจ? ๊ทธ๋ฌ๋๊น
public abstract class ๋์ถฉํด๋์ค์ด๋ฆ<T> where T: MonoBehaviour ์ด๋ ๊ฒ ์ฐ๋ฉด ์๋๋๊ฑฐ์?
์์ด์ ์๋ ์๋ง์ด๊ณ ๋ด๊ฐ ์์ด์ค๋ ฅ๋ธ๋ ค์ ๋ญ๋ผ ๋งํ๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ฐ ์๋ ์๋ง์์ผ๋ก ๋ฑํ ์ค๋ช ์ด ์์์
where์ด ์ ๋ค๋ฆญ์ผ๋ก ์ฌ์ ์๋ ์กฐ๊ฑด์ ์ค์ ํ๋๊ฑด๋ฐ where T: MonoBehaviour์ MonoBehaviour๋ฅผ ์์๋ฐ๋ ํ์ ๋ง
์ <T>์ ๋ค์ด๊ฐ ์ ์๋ค๋๊ฑด๋ฐ ๊ทธ๋ผ ๊ฒฐ๊ตญ MonoBehaviour๋ฅผ ์ด๋ฏธ ์์๋ฐ์๊ฑฐ๋ ๋ค๋ฆ์๋๊ฑฐ ์๋?
๋ด๊ฐ ์์ง ๊ฒ ํ๋๋ ์๋ง๋ค์ด๋ณธ ์ด์ง์๋ค c#๋ ๋ฐ๋ก ๊ณต๋ถํ๊ฒ๋ ์๋๊ณ ๋ค๋ฅธ ์ธ์ด๋ ๋ฑํ ํ ์ค ์๋๊ฒ ์์ด์ ๊ฑ ๋ด๊ฐ ํ๋ฆฐ๊ฑด๊ฐ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ ๋ง์ ์ถ์ ํด๋์ค ๋ง๋๋๊ฑฐ์
๊ฐ์ ๊ณ์ ๋ค์ผ๋๊น ๋ต์ด ๋์์ ์ด๊ฑด ์ถ์ํด๋์ค๋ผ ๊ฒฐ๊ตญ ์์์ฉ์ผ๋ก ์ธ๊ฑด๋ฐ ์ ๊ฑฐ ๋นผ๋ฉด ์์๋ฐ๋ ํด๋์ค์์ MonoBehaviour๋ฅผ ์จ์ค์ผํจ ๊ทผ๋ฐ ๊ทธ๋ผ ๋ ์๊ธฐ๋ ์๋ฌธ์ด ๊ตณ์ด ์์์
์์์ ๋๋ฌด ์ด๋ ต๊ฒ ์ค๋ช ํ๋๋ฐ ๋๊ฐ ํ์์ ๋ง์ด ์จ๋ดค์ List๊ฐ ์ ์ ๋๋ฆญ ์ด ํด๋์ค์ธ๋ฐ List[string] ํ๋ค๊ณ ์ List๊ฐ string์ ์์๋ฐ์ ํด๋์ค๊ฐ ๋๋๊ฒ ์๋๋ผ ๊ทธ๋ฅ string์ ๋ด๋ List๊ฐ ๋๋ ๊ฑฐ์ ๊ฒฐ๊ตญ where T MonoBehaiour๋ ์ [ ] ๋ถ๋ถ์ MonoBehaviour๋ง ๋ค์ด๊ฐ ์ ์๊ฒ ์ ํ์ ๋ ๋ฟ์ด์ง ๊ทธ ํด๋์ค ์์ฒด๊ฐ MonoBehaviour๋ผ๋ ๊ฒ ์๋ ๊บฝ์ ๊ดํธ ์ฐ๋ฉด ์ฌ๋ผ์ ธ์ [ ]๋ก ๋์ฒดํจ
์ดํด ์๋๋ฉด ๊ทธ๋ฅ ์ ๋ค๋ฆญ์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ ๊ฑฐ๋ผ ์ฒ์๋ถํฐ ์ฐพ์๋ณด์
T ๋ผ๋ ํด๋์ค๊ฐ Monobehavior ๋ฅผ ์์๋ฐ๋ ๊ฒ๋ง ์ด ์ถ์ํํด๋์ค๋ง ์ฐ๊ฒ ๋ค๋ ๊ฒ์. ๊ทธ๋ฌ๋ฉด T ๋ String, List, Hash ๋ฑ๋ฑ์ ์ด๋ฐ ํด๋์ค๋ค์ ํด๋น ์๋๋ ๊ฒ์. ์ค๋ก์ง Monobheavior ๋ฅผ ์์ ๋ฐ๋ ์์ํด๋์ค๋ค๋ง ๋๋ค๋ ์๊ธฐ์. ํ๋ง๋๋ก T ์ ์กฐ๊ฑด์ ์ถ๊ฐํ๊ฒ์.