/// <summary> /// 모든 툴에서 공통적으로 사용될 상단 수평 버튼들을 구현하는 메소드 /// </summary> /// <param name="data">원본 데이터</param> /// <param name="selection">선택할 인덱스</param> /// <param name="source"></param> /// <param name="uiWidth">ui 크기</param> public static void EditorToolTopLayer(BaseData data, ref int selection, ref UnityObject source, int uiWidth) { //opengl과 유사한 방식으로 코딩 EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("ADD", GUILayout.Width(uiWidth))) //uiWidth 크기의 ADD 버튼을 클릭시 { data.AddData("NewData"); selection = data.GetDataCount() - 1; //리스트의 가장 마지막 인덱스 source = null; } if (GUILayout.Button("Copy", GUILayout.Width(uiWidth))) //uiWidth 크기의 Copy 버튼을 클릭시 { data.Copy(selection); source = null; selection = data.GetDataCount() - 1; } if (data.GetDataCount() > 1) // 내부 if와 위치 바꿔볼것 { if (GUILayout.Button("Remove", GUILayout.Width(uiWidth))) { source = null; data.RemoveData(selection); } } if (selection > data.GetDataCount() - 1) { selection = data.GetDataCount() - 1; } } EditorGUILayout.EndHorizontal(); }
public static void EditorToolTopLayer(BaseData data, ref int selection, ref UnityObject source, int uiWidth) { EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("ADD", GUILayout.Width(uiWidth))) { data.AddData("New Data"); selection = data.GetDataCount() - 1; // 최종 리스트를 선택 source = null; } if (GUILayout.Button("Copy", GUILayout.Width(uiWidth))) { data.Copy(selection); source = null; selection = data.GetDataCount() - 1; } if (data.GetDataCount() > 1) { if (GUILayout.Button("Remove", GUILayout.Width(uiWidth))) { source = null; data.RemoveData(selection); } } if (selection > data.GetDataCount() - 1) { selection = data.GetDataCount() - 1; } } EditorGUILayout.EndHorizontal(); }