示例#1
0
    /// <summary>
    /// 绘制字段信息
    /// </summary>
    /// <param name="temp"></param>
    private void DrawTableConfigFieldInfo(TableConfigFieldInfo temp)
    {
        Type type = DataConfigUtils.ConfigFieldValueType2Type(temp.fieldValueType, temp.enumType);

        if (temp.defultValue == null || type.FullName != temp.defultValue.GetType().FullName)
        {
            temp.defultValue = ReflectionUtils.CreateDefultInstance(type);
        }

        //是否使用多语言字段


        GUILayout.BeginVertical("box");

        GUILayout.EndVertical();
        temp = (TableConfigFieldInfo)EditorDrawGUIUtil.DrawClassData("字段信息", temp, new List <string>()
        {
            "defultValue", "enumType"
        }, null, () =>
        {
            if (temp.fieldAssetType == DataFieldAssetType.LocalizedLanguage ||
                temp.fieldAssetType == DataFieldAssetType.Prefab ||
                temp.fieldAssetType == DataFieldAssetType.TableKey ||
                temp.fieldAssetType == DataFieldAssetType.Texture)
            {
                if (type != typeof(string))
                {
                    temp.fieldAssetType = DataFieldAssetType.Data;
                }
            }
            string text = "默认值";
            if (temp.fieldAssetType == DataFieldAssetType.LocalizedLanguage)
            {
                temp.defultValue = DrawLocalizedLanguageField(text, temp.defultValue);
            }
            else if (temp.fieldAssetType == DataFieldAssetType.Prefab)
            {
                temp.defultValue = DrawPrefabGUI(text, temp.defultValue);
            }
            else if (temp.fieldAssetType == DataFieldAssetType.Texture)
            {
                temp.defultValue = DrawTextureGUI(text, temp.defultValue);
            }
            else if (temp.fieldAssetType == DataFieldAssetType.TableKey)
            {
                temp.defultValue = DrawTableGUI(text, temp.defultValue);
            }
            else
            {
                temp.defultValue = EditorDrawGUIUtil.DrawBaseValue(text, temp.defultValue);
            }
            if (temp.fieldValueType == FieldType.Enum)
            {
                List <string> enumList = new List <string>(EditorTool.GetAllEnumType());
                temp.enumType          = EditorDrawGUIUtil.DrawPopup("枚举类型", temp.enumType, enumList);
            }
        });
    }
示例#2
0
    private string GetDefaultValue(FieldType fieldValueType, string enumType, string field)
    {
        string defaultValue;

        if (!m_currentData.m_defaultValue.TryGetValue(field, out defaultValue))
        {
            Type   t   = DataConfigUtils.ConfigFieldValueType2Type(fieldValueType, enumType);
            object obj = ReflectionUtils.CreateDefultInstance(t);
            defaultValue = DataConfigUtils.ObjectValue2TableString(obj);
            m_currentData.m_defaultValue.Add(field, defaultValue);
        }

        return(defaultValue);
    }
示例#3
0
    /// <summary>
    /// 绘制每个数据格子
    /// </summary>
    /// <param name="startPos"></param>
    private void DrawGridItem(Vector2 startPos)
    {
        helpBoxStyle.fontSize = nowButtonFontSize;
        float tempHeight = 0;

        for (int i = 0; i < heightItemList.Count; i++)
        {
            float h        = heightItemList[i];
            float tempWith = 0;


            for (int j = 0; j < withItemList.Count; j++)
            {
                float w = withItemList[j];

                Vector2 size = new Vector2(w, h);
                Vector2 pos  = startPos + new Vector2(tempWith, tempHeight);

                object value   = null;
                string showStr = "";

                string    field          = m_currentData.TableKeys[j];
                FieldType fieldValueType = GetFieldType(j, field);
                string    enumType       = GetEnumType(fieldValueType, field);

                string defaultValue = GetDefaultValue(fieldValueType, enumType, field);


                if (i == 0)
                {
                    GUI.color = Color.yellow;

                    showStr = EditorDrawGUIUtil.GetFormatName(field, DataConfigUtils.ConfigFieldValueType2Type(fieldValueType, enumType), "red");
                }
                else if (i == 1)
                {
                    GUI.color = Color.cyan;

                    showStr = GetDescription(field);
                }
                else if (i == 2)
                {
                    GUI.color = Color.green;

                    showStr = defaultValue;
                }
                else
                {
                    SingleData data = m_currentData[m_currentData.TableIDs[i - 3]];

                    bool isDefault = false;
                    if (data.ContainsKey(field) && data[field] != defaultValue)
                    {
                        DataFieldAssetType fieldAssetType = GetDataFieldAssetType(field);
                        if (fieldAssetType == DataFieldAssetType.LocalizedLanguage)
                        {
                            string k = data[field];
                            if (LanguageManager.HaveKey(k))
                            {
                                showStr = LanguageManager.GetContentByKey(k);
                            }
                            else
                            {
                                showStr = k;
                            }
                        }
                        else
                        {
                            showStr = data[field];
                        }
                    }
                    else
                    {
                        showStr   = defaultValue;
                        isDefault = true;
                    }
                    if (!string.IsNullOrEmpty(searchValue))
                    {
                        showStr = ShowContainsChar(showStr, searchValue);
                    }

                    if (isDefault)
                    {
                        showStr = "<color=green>" + showStr + "</color>";
                    }
                }

                if (i == 1 || i == 2)
                {
                    GUI.Button(new Rect(pos, size), showStr, helpBoxStyle);
                }
                else
                {
                    if (selectColumnIndexs.Contains(j))
                    {
                        GUI.color = Color.magenta;
                    }
                    if (selectRowIndexs.Contains(i))
                    {
                        GUI.color = Color.cyan;
                    }
                    if (GUI.Button(new Rect(pos, size), showStr, helpBoxStyle))
                    {
                        modifiIndex = new Vector2Int(i - 2, j);
                        if (i == 0)
                        {
                            TableConfigFieldInfo f = new TableConfigFieldInfo();
                            f.fieldName      = field;
                            f.description    = m_currentData.m_noteValue.ContainsKey(field) ? m_currentData.m_noteValue[field] : "";
                            f.fieldValueType = fieldValueType;
                            f.defultValue    = DataConfigUtils.TableString2ObjectValue(defaultValue, fieldValueType, enumType);
                            f.enumType       = enumType;
                            f.fieldAssetType = GetDataFieldAssetType(field);
                            value            = f;
                        }
                        else
                        {
                            SingleData data = m_currentData[m_currentData.TableIDs[i - 3]];

                            if (data.ContainsKey(field))
                            {
                                defaultValue = data[field];
                            }
                            value = DataConfigUtils.TableString2ObjectValue(defaultValue, fieldValueType, enumType);
                        }
                        GeneralDataModificationWindow.OpenWindow(this, "修改数据", value, DrawModifiValueGUI, CheckModifiValueCallBack, ModificationCompleteCallBack);
                    }
                }

                GUI.color = Color.white;
                tempWith += w;
            }

            tempHeight += h;
        }
        helpBoxStyle.fontSize = oldButtonFontSize;
    }