์ ๋ํฐ ์ปค์คํ
์๋ํฐ ๋ฆฌ์ค๋๋ธ ๋ฆฌ์คํธ ๋ฐฐ์ด ํฌ๊ธฐ ํ๋ ์ด์ผ ๋ง๋๋?
๊ทธ๋ฅ intfield๋ก ํด์ EditorGUI check ๋ค๋ก ํ๋ฉด ๊ฐ์ด ์ ๋ ฅ๋ ๋๋ง๋ค ๋ฐฐ์ดํฌ๊ธฐ๊ฐ ๋ฐ๋์ด์ ๋ง์ฝ 10์ ์น๋ฉด ๋ฐฐ์ดํฌ๊ธฐ๊ฐย 1๋์๋ค๊ฐ 10์ผ๋ก ๋ณํ๋ค...
ํ์ ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ์ฒ๋ผ ์ํฐ๋ฅผ ์น๊ฑฐ๋ focusout์ด ๋์ผ ๊ฐ์ด ๋ฐ๋๋ ๊ฑด ์ด์ผํด์ผํจ?
์ ๋ ฅํ์ ํน์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฐ์์์ผ์ผ ์ ์ฉ๋๋๋กํด
GUI.GetNameOfFocusedControl() !=
์ฐ๋๋ฐ ์ ์ฉ์ด ์๋๋ค
์ฝ๋ ์ฌ๋ ค๋ด
EditorGUI.BeginChangeCheck(); GUI.SetNextControlName("forkDatasLenght"); int _forkDataSize = EditorGUILayout.IntField(_forkDatas.arraySize, EditorStyles.textField, new GUILayoutOption[] { GUILayout.Width(EditorGUIUtility.fieldWidth) }); if (GUI.GetNameOfFocusedControl() != "forkDatasLenght") {
_forkDatas.arraySize = _forkDataSize; //serializedObject.ApplyModifiedProperties(); } if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); }
GUI.GetNameOfFocusedControl() != "forkDatasLenght"๋ endchange์ serializedObject.ApplyModifiedProperties(); ๋ค ๋ฃ์ด๋ดค๋๋ฐ ์๋จ
forkDatas.arraysize๋ฅผ endchangecheck์ชฝ์ ๋ฃ์ด๋ ์๋๋ค๊ณ ?
๋ชจ๋ฐ์ผ๋ก ๋ณผ๋ผ๋๊น ์ค๋ฐ๊ฟ ์ด์ํ๊ฒ ๋ผ์์ด์ ํท๊ฐ๋ฆฌ๋ค
inputField์ ์ซ์ ๋ฃ๊ณ ๊ทธ ์ซ์๋งํผ ๋ฆฌ์คํธ ํฌ๊ธฐ๊ฐ ๋์ผ๋ฉด ํ๋ค๋๊ฑฐ ๋ง์? ์๋ ๊ฑด ์์ง๋ง ๊ตณ์ด reorderablelist๋ฅผ ์ฐ๋ ์ด์ ๊ฐ ๋ญ์ผ? ๊ทธ๋ฅ list ์ฐ๋ฉด ๊ทธ๋ด ํ์๊ฐ ์๋๋ฐ
ใ ใ ์ธ์คํํฐ intfield์ ๋ฃ์ผ๋ฉด ๋ฐฐ์ด ํฌ๊ธฐ๊ฐ ๋ฐ๋๊ฒ. ๊ทผ๋ฐ GUI.GetNameOfFocusedControl() != "forkDatasLenght" ์์ฐ๊ณ endcheck๋ง ์ผ์ ๋๋ ๋ง์ฝ 10์ ์น๋ค๊ณ ํ๋ฉด 1์ ๋ ฅ๋ ๋ ์ฌ์ด์ฆ๊ฐ 1๋ก๋์๋ค๊ฐ ๋ค์ 10์ผ๋ก ๋์ ๋ง์ฝ ๊ทธ์ ์ ๋ฐฐ์ด ํฌ๊ธฐ๊ฐ 20 ์ด์๋ค๋ฉด ์ธ๋ฑ์ค 1 ~ 19๊น์ง ๋ค ๋ ์๊ฐ๋ฒ๋ฆผ. ๋ฐฐ์ด ์๋ ๋จผํธ์ ํ์๋๋ ์ด๋ฆ ๋ฐ๊พธ๋ ค๊ณ reordableist ์ผ์ง ๊ทธ๋ฅ list ์ฐ๋ฉด element 0, 1, 2, 3์ผ๋ก ๋์์ ์์ ๋ญ๊ฐ์๋์ง ๋ชจ๋ฅด๊ฒ ๋๋ผ๊ณ .
inputField๋ฅผ delayedTextField๋ก ๋ฐ๊ฟ์ ํด๋ด
์ค ๋๋ค ใณใณ