示例#1
0
 /// <summary>
 /// 打开添加敌人的窗口
 /// </summary>
 /// <param name="setting"></param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 public static void OpenAddEnemyWindow(int x, int y, EnemyUnitSetting setting)
 {
     OpenWindow();
     m_bMedify   = false;
     UnitSetting = setting;
     unit        = new EnemyUnitSetting.EnemyUnit(x, y);
 }
示例#2
0
        void OnSceneGUI()
        {
            unitSetting = (EnemyUnitSetting)target; //注意必须要获取target ,否则该事件不执行

            Handles.BeginGUI();
            GUILayout.BeginArea(new Rect(100, 100, 100, 100));

            Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);

            RaycastHit rayHit;

            if (m_editable)
            {
                //编辑状态下显示右键菜单
                if (Event.current.button < 2)
                {
                    Selection.activeObject = unitSetting.transform;

                    if (Physics.Raycast(ray, out rayHit))
                    {
                        Vector2Int p = new Vector2Int((int)rayHit.point.x, (int)rayHit.point.y);

                        x = Mathf.Clamp(p.x, 0, int.MaxValue);
                        y = Mathf.Clamp(p.y, 0, int.MaxValue);
                        //按下右键弹出菜单
                        if (Event.current.button == 1)
                        {
                            if (unitSetting.Contains(new Vector2Int(x, y)))
                            {
                                setSceneMenu.ShowAsContext();
                            }
                            else
                            {
                                addSceneMenu = new GenericMenu();
                                addSceneMenu.AddItem(new GUIContent("添加敌人"), false, OnAddUnit, 0);
                                if (unitSetting.IsEmpty(unitMirror))
                                {
                                    addSceneMenu.AddDisabledItem(new GUIContent("粘贴"));
                                }
                                else
                                {
                                    addSceneMenu.AddItem(new GUIContent("粘贴"), false, OnPaste);
                                }
                                addSceneMenu.ShowAsContext();
                            }
                        }
                    }
                }
            }
            Undo.RecordObject(unitSetting, "EnemyUnitSetting");
            GUILayout.EndArea();
            Handles.EndGUI();
        }
示例#3
0
        public static void OpenSetEnemyWindow(int x, int y, EnemyUnitSetting setting, EnemyDef enemy, int index)
        {
            OpenWindow();
            m_bMedify = true;
            previousX = x;
            previousY = y;

            UnitSetting = setting;
            unit        = new EnemyUnitSetting.EnemyUnit(x, y);
            unit.Enemy  = enemy;
            if (enemy == null)
            {
                unit.Enemy = EnemyDefList[0];
            }
            ActiveIndex = index;
        }