Ejemplo n.º 1
0
    /// <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();
    }
Ejemplo n.º 2
0
 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();
 }