์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ ์์ ์ฌ๋ฌ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ฆ
๋ฌธ์ ๋ ์ด ๋ฆฌ์คํธ๋ค์ ์ผ๊ด์ ์ผ๋ก ํ์ธํ ๋ฐฉ๋ฒ์ด ์์
๊ทธ๋์ ๋ฆฌํ๋ ์ ์ผ๋ก ์ด ๋ฆฌ์คํธ๋ค์ ์๋ก์ด ๋ฆฌ์คํธ ํ๋์ ๋ด์ผ๋ ค๊ณ ํจ
FieldInfo[] fields = ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ.GetType().GetFields();
foreach (FieldInfo field in fields)
{
Debug.Log(field.Name);
}
์ด๋ ๊ฒ ํด์ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ์ ๋ด๊ธด ๊ฐ ๋ฆฌ์คํธ์ ์ด๋ฆ์ ํ์ธํ๋๊ฑฐ๊น์ง๋ ๊ฐ๋ฅํ๋๋ฐ
๋ฌธ์ ๋ ์ด ๊ฐ๋ค์ ์๋ก์ด ๋ฆฌ์คํธ์ ๋ด์ ์๊ฐ ์๋๋ผ.
๋ง ๊ทธ๋๋ก FieldInfo ํ์์ด๋ผ์ ๋ฆฌ์คํธ์ ์๋ด๊ธฐ๋๋ฐ ์ด๋ป๊ฒ ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค.. ๋ญ๋ก ๋ถ๋ฌ์์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ์
์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ์ ์ผ์ผ์ด ๋ฆฌ์คํธ ์ถ๊ฐํ๋ ํจ์ ๋ง๋ค๊ณ ๋ค๋ฅธ๋ฐ์์ ๊ทธ๊ฑฐ ์คํํ๋ฉด ์ฝ๊ธด ํ๋ฐ ๋ง์์๋ ์๋ฆ..
List๋ ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ธ object๋๊น getvalue๋๊ฐ ๊ฐ ๊ฐ์ ธ์ค๋ฉด ๋ ๊ฑธ
๋์ถฉ ์ด๋ฐ ์? var list = (IList)field.GetValue(obj);
์ฌ๊ธฐ์ obj๋ฅผ ์ด๋ป๊ฒ ์ค์ ํด์ค์ผํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ด..
๊ทธ list๊ฐ์ ๋ค ๊ฐ์ง๊ณ ์๋ obj
๋ค ์์์์๋ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ ์ด๊ฑฐ
์ ๋ค ๊ฐ์ง๊ณ ์๋ ์ค๋ธ์ ํธ๊ตฌ๋.. ์ด๋ฏธ ํ๋๋ค ์ฐธ์กฐํ ๋ ํ๋ฒ ๊ฐ์ ธ์์ ์ ๋ ํด๋ ๋๋์ค ๋ชฐ๋๋ค ๋๋ถ์ ์ ๋๋ค ๊ณ ๋ง์
๋ฆฌ์คํธ์์ ๋ด์๋๋๊ฒ ํด๋์ค๋ฉด ๊ณตํต๋ ๋ณ์๋ฅผ ์ธํฐํ์ด์ค๋ ์ถ์ํด๋์ค์ ๋ฐ๊ณ ๋ค๊ณ ์ค๋ฉด ๋์๋
์ด๋ ๊ฒ ํ๋ ค๋ฉด ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ฅผ ์ถ์ํ์์ผ์ผํ๋๊ฑฐ ์๋๊ฐ? ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์คํฌ๋ฆฝํฐ๋ธ ์ค๋ธ์ ํธ๋ผ ๊ทธ๋ฐ์ง ์๋๋น..