Пример #1
0
        private void OnGUI()
        {
            EditorGUILayout.BeginVertical();
            EditorGUILayout.Space();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("text:", StyleSetting.LayoutSetting("LabelFieldShort"));
            EditorGUILayout.TextField(UnityEngine.Random.value.ToString(), StyleSetting.LayoutSetting("TextField"));
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Ok", StyleSetting.LayoutSetting("Button")))
            {
                m_showValue = m_value00;
            }
            else if (GUILayout.Button("Cancel", StyleSetting.LayoutSetting("Button")))
            {
                m_showValue = "";
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.EndVertical();

            //EditorGUILayout.LabelField(m_showValue, StyleSetting.LayoutSetting("LabelField"));
        }
Пример #2
0
        private void OnGUI()
        {
            int  dh        = 0;
            var  e         = Event.current;
            bool isChanged = false;

            if (e != null && e.isKey && e.type == EventType.KeyUp)
            {
                if (m_curMapConfig != null && m_curCellX < m_curMapConfig.mapSizeX && m_curCellY < m_curMapConfig.mapSizeY)
                {
                    if (e.keyCode == KeyCode.W)
                    {
                        dh = 1;
                    }
                    if (e.keyCode == KeyCode.S)
                    {
                        dh = -1;
                    }
                    if (e.keyCode == KeyCode.Minus)
                    {
                        keyCache = "-";
                    }
                    if (e.keyCode >= KeyCode.Alpha0 && e.keyCode <= KeyCode.Alpha9)
                    {
                        keyCache += (e.keyCode - KeyCode.Alpha0).ToString();
                        isChanged = true;
                    }
                }
            }

            HandleHorizontalResize();
            HandleVerticalResize();

            #region TreeView_LT
            var unitTreeRect = new Rect(
                0,
                0,
                m_HorizontalSplitterRect.x,
                m_VerticalSplitterRectLeft.y
                );

            if (GUILayout.Button("刷新", StyleSetting.LayoutSetting("Button")) || m_cmdTree == null)
            {
                m_cmdTree = new CellMapDataFileTreeView(new TreeViewState(), this);
            }
            var unitTreeRect2 = unitTreeRect;
            unitTreeRect2.y      += 25;
            unitTreeRect2.height -= 25;
            //TreeView
            m_cmdTree.OnGUI(unitTreeRect2);
            #endregion

            #region Setting_LB
            var unitPreviewRect = new Rect(
                unitTreeRect.x,
                unitTreeRect.y + unitTreeRect.height + k_SplitterWidth,
                unitTreeRect.width,
                position.height - unitTreeRect.height - k_SplitterWidth * 2
                );
            GUILayout.BeginArea(unitPreviewRect, EditorStyles.helpBox);
            //m_preview.OnGUI(unitPreviewRect);
            GUILayout.BeginVertical();
            m_isChangedValue = EditorGUILayout.Toggle("改disable", m_isChangedValue);
            GUILayout.BeginHorizontal();
            const int btnLen = 32;
            if (GUILayout.Button("大", new GUILayoutOption[] { GUILayout.Width(btnLen), GUILayout.Height(btnLen) }))
            {
                m_cellButtonLen = c_cellButtonLenLarge;
            }
            if (GUILayout.Button("中", new GUILayoutOption[] { GUILayout.Width(btnLen), GUILayout.Height(btnLen) }))
            {
                m_cellButtonLen = c_cellButtonLenMiddle;
            }
            if (GUILayout.Button("小", new GUILayoutOption[] { GUILayout.Width(btnLen), GUILayout.Height(btnLen) }))
            {
                m_cellButtonLen = c_cellButtonLenSmall;
            }
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndArea();
            #endregion

            float panelLeft   = m_HorizontalSplitterRect.x + k_SplitterWidth;
            float panelWidth  = m_VerticalSplitterRectRight.width - k_SplitterWidth * 2;
            float panelHeight = m_VerticalSplitterRectRight.y;

            #region Canvas_RT
            var unitListRect = new Rect(
                panelLeft,
                0,
                panelWidth,
                panelHeight
                );
            GUILayout.BeginArea(unitListRect, EditorStyles.helpBox);
            if (m_curMapConfig != null && m_isShowCanvas == true)
            {
                scrollPosition = GUILayout.BeginScrollView(scrollPosition);
                GUILayout.BeginHorizontal(GUILayout.Width(m_curMapConfig.mapSizeX * m_cellButtonLen));
                for (int i = 0; i < m_curMapConfig.mapSizeX; i++)
                {
                    GUILayout.BeginVertical();
                    if ((i & 1) == 1)
                    {
                        GUILayout.Space(m_cellButtonLen * 0.5f);
                    }
                    for (int j = m_curMapConfig.mapSizeY - 1; j >= 0; j--)
                    {
                        //curTip = i.ToString() + ", " + j.ToString() + "\n";
                        uint      texId  = 0;
                        Texture2D tmpTex = null;

                        if (m_curMapConfig != null)
                        {
                            var curCell = m_curMapConfig.cellData[i * m_curMapConfig.mapSizeY + j];
                            //if (m_curCellX == i && m_curCellY == j)
                            //{
                            //    //curSelect
                            //}
                            if (curCell.disable)
                            {
                                //disable
                                texId |= c_cbtnStateDisable;
                            }
                            else
                            {
                                //normal
                                texId |= c_cbtnStateNormal;
                                texId  = (uint)(texId + curCell.height);
                            }
                        }
                        GUIStyle s = new GUIStyle();
                        //var tex = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Texture/Hexagon.png");
                        texId |= (((uint)m_cellButtonLen) << 20);
                        //s.imagePosition = ImagePosition.ImageOnly;
                        tmpTex = getCellBtnTexCache(texId);
                        if (tmpTex == null)
                        {
                            tmpTex = new Texture2D(m_cellButtonLen, m_cellButtonLen);
                        }
                        GUIContent gc = new GUIContent(tmpTex);
                        //tex.width = m_cellButtonLen;
                        //tex.height = m_cellButtonLen;
                        //GUILayout.Button()
                        //if (GUILayout.Button(curTip, new GUILayoutOption[] { GUILayout.Width(m_cellButtonLen), GUILayout.Height(m_cellButtonLen) }))
                        if (GUILayout.Button(gc, s, new GUILayoutOption[] { GUILayout.Width(m_cellButtonLen), GUILayout.Height(m_cellButtonLen) }))
                        {
                            m_curCellX = i;
                            m_curCellY = j;
                            if (m_isChangedValue == true)
                            {
                                m_curMapConfig.cellData[i * m_curMapConfig.mapSizeY + j].disable = !m_curMapConfig.cellData[i * m_curMapConfig.mapSizeY + j].disable;
                                saveCellMapSetting();
                            }
                            GUI.SetNextControlName("mx_tmpFocus");
                            GUI.TextField(new Rect(), "", 0);
                            GUI.FocusControl("mx_tmpFocus");
                            curSelectCellChanged();
                            isChanged = false;
                        }
                    }
                    GUILayout.EndVertical();
                }
                GUILayout.EndHorizontal();
                //curSelectBorder
                const float dx    = 0;
                const float dy    = 0;
                float       selbx = m_curCellX * m_cellButtonLen + dx;
                float       selby = ((m_curCellX & 1) * 0.5f + m_curMapConfig.mapSizeY - m_curCellY - 1) * m_cellButtonLen + dy;
                GUILayout.BeginArea(new Rect(selbx, selby, m_cellButtonLen, m_cellButtonLen));
                var texSel = getSelectBorderTexCache(m_cellButtonLen - c_cellButtonSpacing);
                GUILayout.Button(new GUIContent(texSel), new GUIStyle(), new GUILayoutOption[] { GUILayout.Width(m_cellButtonLen), GUILayout.Height(m_cellButtonLen) });
                GUILayout.EndArea();
                GUILayout.EndScrollView();
            }
            GUILayout.EndArea();
            #endregion

            #region Attr_RB
            var unitEditorRect = new Rect(
                panelLeft,
                panelHeight + k_SplitterWidth,
                panelWidth,
                (position.height - panelHeight) - k_SplitterWidth * 2
                );
            GUILayout.BeginArea(unitEditorRect, EditorStyles.helpBox);
            //m_UnitList.OnGUI(unitListRect);
            GUILayout.BeginVertical();
            GUILayout.BeginHorizontal();
            EditorGUILayout.BeginVertical();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("本地路径", StyleSetting.LayoutSetting("LabelFieldShort"));
            EditorGUILayout.TextField(m_curFilePath, StyleSetting.LayoutSetting("TextFieldLong"));
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("资源路径", StyleSetting.LayoutSetting("LabelFieldShort"));
            EditorGUILayout.TextField(m_curResPath, StyleSetting.LayoutSetting("TextFieldLong"));
            EditorGUILayout.EndHorizontal();
            if (!(m_curResPath == null || m_curResPath.Length == 0 || m_curResPath[m_curResPath.Length - 1] == '/'))
            {
                m_isShowCanvas = true;
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("地图尺寸:", StyleSetting.LayoutSetting("LabelFieldShort"));
                EditorGUILayout.LabelField("x:", StyleSetting.LayoutSetting("LabelFieldShort"));
                m_mapSizeX = EditorGUILayout.TextField(m_mapSizeX, StyleSetting.LayoutSetting("TextField"));
                EditorGUILayout.LabelField("y:", StyleSetting.LayoutSetting("LabelFieldShort"));
                m_mapSizeY = EditorGUILayout.TextField(m_mapSizeY, StyleSetting.LayoutSetting("TextField"));
                var sizeX = Convert.ToInt32(m_mapSizeX);
                var sizeY = Convert.ToInt32(m_mapSizeY);
                if (GUILayout.Button("设置", StyleSetting.LayoutSetting("Button")))
                {
                    resizeCellMap(sizeX, sizeY);
                }
                EditorGUILayout.EndHorizontal();
                if (m_curMapConfig != null && m_curCellX < m_curMapConfig.mapSizeX && m_curCellY < m_curMapConfig.mapSizeY)
                {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("当前Cell:" + m_curCellX.ToString() + ", " + m_curCellY.ToString(), StyleSetting.LayoutSetting("LabelField"));
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("disable:", StyleSetting.LayoutSetting("LabelFieldShort"));
                    var oldValue = m_curMapConfig.cellData[m_curCellX * m_curMapConfig.mapSizeY + m_curCellY].disable;
                    var newValue = EditorGUILayout.Toggle(oldValue);
                    if (newValue != oldValue)
                    {
                        m_curMapConfig.cellData[m_curCellX * m_curMapConfig.mapSizeY + m_curCellY].disable = newValue;
                        saveCellMapSetting();
                    }
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField("height:", StyleSetting.LayoutSetting("LabelFieldShort"));
                    string newHeightStr;
                    if (isChanged == true)
                    {
                        newHeightStr = keyCache;
                        isChanged    = false;
                    }
                    else
                    {
                        newHeightStr = EditorGUILayout.TextField(m_curMapConfig.cellData[m_curCellX * m_curMapConfig.mapSizeY + m_curCellY].height.ToString(), StyleSetting.LayoutSetting("TextField"));
                    }
                    var newHeight = Convert.ToInt32(newHeightStr) + dh;
                    if (newHeight != m_curMapConfig.cellData[m_curCellX * m_curMapConfig.mapSizeY + m_curCellY].height)
                    {
                        m_curMapConfig.cellData[m_curCellX * m_curMapConfig.mapSizeY + m_curCellY].height = newHeight;
                        saveCellMapSetting();
                    }
                    EditorGUILayout.EndHorizontal();
                }
                //EditorGUILayout.BeginHorizontal();
                //if (GUILayout.Button("Ok", StyleSetting.LayoutSetting("Button")))
                //{
                //}
                //else if (GUILayout.Button("Cancel", StyleSetting.LayoutSetting("Button")))
                //{
                //}
                //EditorGUILayout.EndHorizontal();
            }
            else
            {
                m_isShowCanvas = false;
            }
            EditorGUILayout.EndVertical();
            GUILayout.EndHorizontal();
            GUILayout.EndVertical();
            GUILayout.EndArea();
            #endregion

            if (m_ResizingHorizontalSplitter || m_ResizingVerticalSplitterLeft || m_ResizingVerticalSplitterRight)
            {
                Repaint();
            }
        }
Пример #3
0
 static public void setCurSetting(StyleSetting cs)
 {
     s_curSetting = cs;
 }