Beispiel #1
0
 void OnGUI()
 {
     EditorGUILayout.BeginHorizontal();
     if (GUILayout.Button("刷新数据", GUILayout.Width(120)))
     {
         RPGData.LoadDefAssetAtPath <EnemyDef>(ref EnemyDefList, EnemyDefEditor.DIRECTORY_PATH, "asset");
     }
     EditorGUILayout.Space();
     if (GUILayout.Button("确定", GUILayout.Width(120)))
     {
         if (!IsValidUnit())
         {
             EditorUtility.DisplayDialog("无效坐标", "插入的坐标已经存在或格式不正确", "OK");
             return;
         }
         if (!m_bMedify)
         {
             UnitSetting.Units.Add(unit);
         }
         else
         {
             EnemyUnitSetting.EnemyUnit previousUnit = UnitSetting.GetUnit(new Vector2Int(previousX, previousY));
             int i = UnitSetting.Units.IndexOf(previousUnit);
             if (i >= 0)
             {
                 UnitSetting.Units.RemoveAt(i);
                 UnitSetting.Units.Insert(i, new EnemyUnitSetting.EnemyUnit(unit.Coord, unit.Enemy));
             }
         }
         Close();
     }
     EditorGUILayout.Space();
     if (GUILayout.Button("取消", GUILayout.Width(120)))
     {
         Close();
     }
     EditorGUILayout.EndHorizontal();
     EditorGUILayout.Space();
     EditorGUILayout.BeginHorizontal();
     ShowEnemyDefList();
     RPGEditorGUI.DrawVerticalLine(2, Color.black);
     ShowEnemyDefContent();
     EditorGUILayout.EndHorizontal();
     Undo.RecordObject(UnitSetting, "EnemyUnitSetting");
 }
Beispiel #2
0
        public static int MenuHorizontal(int selected, string[] menuItems, params GUILayoutOption[] options)
        {
            if (selected >= menuItems.Length || selected < 0)
            {
                selected = 0;
            }
            EditorGUILayout.BeginHorizontal(MenuBoxStyle, options);
            {
                GUILayout.Space(20);

                for (int i = 0; i < menuItems.Length; i++)
                {
                    if (string.IsNullOrEmpty(menuItems[i]))
                    {
                        GUILayout.Space(15); continue;
                    }

                    if (menuItems[i][0] == '-')
                    {
                        if (menuItems[i].Length > 1)
                        {
                            GUILayout.Label(menuItems[i].Substring(1), RPGEditorGUI.MenuHeadStyle);
                        }
                        else
                        {
                            RPGEditorGUI.DrawVerticalLine(1, RPGEditorGUI.DividerColor, 5, 5);
                        }
                        continue;
                    }

                    if (GUILayout.Toggle((i == selected), menuItems[i], RPGEditorGUI.ButtonStyle))
                    {
                        selected = i;
                    }
                }

                GUILayout.FlexibleSpace();
            }
            EditorGUILayout.EndHorizontal();
            return(selected);
        }