/// <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(); }
/// <summary> /// 모든 툴에서 사용될 수직 리스트 레이아웃 /// </summary> /// <param name="ScrollPosition"></param> /// <param name="data"></param> /// <param name="selection"></param> /// <param name="source"></param> /// <param name="uiWidth"></param> public static void EditorToolListLayer(ref Vector2 ScrollPosition, BaseData data, ref int selection, ref UnityObject source, int uiWidth) { EditorGUILayout.BeginVertical(GUILayout.Width(uiWidth)); { EditorGUILayout.Separator(); EditorGUILayout.BeginVertical("box"); { ScrollPosition = EditorGUILayout.BeginScrollView(ScrollPosition); { if (data.GetDataCount() > 0) { int lastSelection = selection; //선택을 바꿧는지를 체크하기 위해 selection = GUILayout.SelectionGrid(selection, data.GetNameList(true), 1); if (lastSelection != selection) { // 선택이 바뀌었다. source = null; } } } EditorGUILayout.EndScrollView(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndVertical(); }
public void AddItemList(BaseData data) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.Width(pw.mWidth)); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical("box"); SP1 = EditorGUILayout.BeginScrollView(SP1); if(data.GetDataCount() > 0) { var prev = selection; selection = GUILayout.SelectionGrid(selection, data.GetNameList(true), 1); if(prev != selection) { this.tmpIcon = null; GUI.FocusControl("ID"); } } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); EditorGUILayout.EndVertical(); }
public bool ShowCopyButton(BaseData data) { GUI.SetNextControlName("Copy"); bool press = GUILayout.Button("Copy", GUILayout.Width(pw.mWidth2)); if(press) { GUI.FocusControl("Copy"); data.Copy(selection); selection = data.GetDataCount()-1; } return press; }
public void CheckSelection(BaseData data) { if(selection > data.GetDataCount()-1) { selection = data.GetDataCount()-1; } }