Example #1
0
 private void Refresh()
 {
     //Talent Count
     m_UserTalentCount     = m_DefaultUserTalentData.MapTalent.Count;
     m_UserTalentLastCount = m_UserTalentCount;
     //Editor Data
     m_lstUserTalents = new List <UserTalentInfo>();
     foreach (string talentName in m_DefaultUserTalentData.MapTalent.Keys)
     {
         UserTalentInfo temp = new UserTalentInfo();
         temp.TalentName  = talentName;
         temp.TalentValue = AdaptiveDifficultyManager.ConvertFloat(m_DefaultUserTalentData.MapTalent[talentName]);
         m_lstUserTalents.Add(temp);
     }
 }
    private void OnGUI()
    {
        // Setting
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            if (GUILayout.Button("重置", GUILayout.Width(60f)))
            {
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button("保存", GUILayout.Width(60f)))
            {
                SaveFile();
                Repaint();
            }
            if (GUILayout.Button("同步", GUILayout.Width(60f)))
            {
                SysnFile();
                //LoadFile();
                Repaint();
            }
            if (GUILayout.Button("合并", GUILayout.Width(60f)))
            {
                MergeFile();
                //LoadFile();
                Repaint();
            }

        }
        EditorGUILayout.EndHorizontal();
        // Talent Count
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            GUILayout.Space(5f);
            EditorGUILayout.LabelField("天赋数量:", GUILayout.Width(60f));
            m_UserTalentCount = EditorGUILayout.IntField(m_UserTalentCount, GUILayout.Width(60f));
            GUILayout.Space(5f);
            if (GUILayout.Button("+", EditorStyles.miniButtonLeft, GUILayout.Width(30f)))
            {
                m_UserTalentCount++;
            }
            if (GUILayout.Button("-", EditorStyles.miniButtonRight, GUILayout.Width(30f)))
            {
                if (m_UserTalentCount > 0)
                    m_UserTalentCount--;
            }
            //Init Data
            if (m_UserTalentCount < m_UserTalentLastCount && m_UserTalentCount >= 0)
            {
                int removeCount = m_UserTalentLastCount - m_UserTalentCount;
                for (int i = 0; i < removeCount; i++)
                {
                    m_lstUserTalents.RemoveAt(m_lstUserTalents.Count - 1);
                }
            }
            else if (m_UserTalentCount > m_UserTalentLastCount)
            {
                int extraCount = m_UserTalentCount - m_UserTalentLastCount;
                for (int i = 0; i < extraCount; i++)
                {
                    UserTalentInfo tmpData = new UserTalentInfo();
                    tmpData.TalentName = "";
                    tmpData.TalentValue = 0f;
                    m_lstUserTalents.Add(tmpData);
                }
            }
        }
        EditorGUILayout.EndHorizontal();
        // Talent Data
        GUILayout.Space(15f);
        if (m_lstUserTalents != null && m_lstUserTalents.Count > 0)
        {
            for (int i = 0; i < m_lstUserTalents.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.LabelField("天赋名称: ", GUILayout.Width(60f));
                    m_lstUserTalents[i].TalentName = EditorGUILayout.TextField(m_lstUserTalents[i].TalentName, GUILayout.Width(60f));
                    EditorGUILayout.LabelField("默认值: ", GUILayout.Width(60f));
                    m_lstUserTalents[i].TalentValue = EditorGUILayout.Slider(m_lstUserTalents[i].TalentValue, 0f, 1f);
                    if (GUILayout.Button("X", GUILayout.Width(20f)))
                    {
                        var option = EditorUtility.DisplayDialog("确定要删除吗?",
                                                                 "确定吗?确定吗?确定吗?确定吗?确定吗?",
                                                                 "确定", "取消");
                        if (option)
                        {
                            m_lstUserTalents.RemoveAt(i);
                            m_UserTalentCount--;
                            Repaint();
                            break;
                        }
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
        }

        m_UserTalentLastCount = m_UserTalentCount;
    }
 private void Refresh()
 {
     //Talent Count
     m_UserTalentCount = m_DefaultUserTalentData.MapTalent.Count;
     m_UserTalentLastCount = m_UserTalentCount;
     //Editor Data
     m_lstUserTalents = new List<UserTalentInfo>();
     foreach (string talentName in m_DefaultUserTalentData.MapTalent.Keys)
     {
         UserTalentInfo temp = new UserTalentInfo();
         temp.TalentName = talentName;
         temp.TalentValue = AdaptiveDifficultyManager.ConvertFloat(m_DefaultUserTalentData.MapTalent[talentName]);
         m_lstUserTalents.Add(temp);
     }
 }
    private void OnGUI()
    {
        #region Setting
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            if (GUILayout.Button("重置", GUILayout.Width(60f)))
            {
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button(m_lstDifficultyInfo == null ? "生成" : "保存", GUILayout.Width(60f)))
            {
                SaveFile();
                Repaint();
            }
            if (GUILayout.Button("同步", GUILayout.Width(60f)))
            {
                SysnFile();
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button("合并", GUILayout.Width(60f)))
            {
                MergeFile();
                LoadFile();
                Repaint();
            }
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Game ID
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            EditorGUILayout.LabelField("游戏ID : ", GUILayout.Width(60f));
            m_GameID_InputField = EditorGUILayout.IntField(m_GameID_InputField, GUILayout.Width(60f));
            if (GUILayout.Button("加载", GUILayout.Width(60f)))
            {
                m_GameID = m_GameID_InputField;
                //GUI.SetNextControlName("Input");
                //EditorUtility.DisplayDialog("加载成功", "加载成功", "确定");
                //GUI.FocusControl("Input");
                Refresh();
                this.Focus();
            }

            GUILayout.Space(15f);
            EditorGUILayout.LabelField("显示宽度 : ", GUILayout.Width(60f));
            m_fNodeSpace = EditorGUILayout.Slider(m_fNodeSpace, 100f, 300f, GUILayout.Width(200f));
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        if (m_lstDifficultyInfo == null)
        {
            return;
        }

        #region Difficulty Count
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            GUILayout.Space(5f);
            EditorGUILayout.LabelField("难度维度:", GUILayout.Width(60f));
            m_DifficultyCount = EditorGUILayout.IntField(m_DifficultyCount, GUILayout.Width(60f));
            GUILayout.Space(5f);
            if (GUILayout.Button("+", EditorStyles.miniButtonLeft, GUILayout.Width(30f)))
            {
                m_DifficultyCount++;
            }
            if (GUILayout.Button("-", EditorStyles.miniButtonRight, GUILayout.Width(30f)))
            {
                if (m_DifficultyCount > 0)
                {
                    m_DifficultyCount--;
                }
            }
            //Init Data
            if (m_DifficultyCount < m_DifficultyLastCount && m_DifficultyCount >= 0)
            {
                int removeCount = m_DifficultyLastCount - m_DifficultyCount;
                for (int i = 0; i < removeCount; i++)
                {
                    m_lstDifficultyInfo.RemoveAt(m_lstDifficultyInfo.Count - 1);
                }
            }
            else if (m_DifficultyCount > m_DifficultyLastCount)
            {
                int extraCount = m_DifficultyCount - m_DifficultyLastCount;
                for (int i = 0; i < extraCount; i++)
                {
                    DifficultyInfo tmpData = new DifficultyInfo();
                    tmpData.Name          = "";
                    tmpData.Offset        = 0f;
                    tmpData.Range         = 0f;
                    tmpData.TalentEffects = new Dictionary <string, float>();
                    DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                    foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                    {
                        tmpData.TalentEffects.Add(talentName, 0f);
                    }
                    m_lstDifficultyInfo.Add(tmpData);
                }
            }
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Difficuly Data
        m_EventScorllPos = EditorGUILayout.BeginScrollView(m_EventScorllPos);
        {
            // Data Name
            GUILayout.Space(15f);
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("难度 \\ 天赋", GUILayout.Width(m_fNodeSpace));
                //GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandHeight(true), GUILayout.Width(1) });
                // Offset & Range
                EditorGUILayout.LabelField("基础值", GUILayout.Width(m_fNodeSpace));
                EditorGUILayout.LabelField("浮动范围", GUILayout.Width(m_fNodeSpace));
                // Talent Effect
                DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                {
                    EditorGUILayout.LabelField(talentName, GUILayout.Width(m_fNodeSpace));
                }
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
            // Data List
            if (m_lstDifficultyInfo != null && m_lstDifficultyInfo.Count > 0)
            {
                for (int i = 0; i < m_lstDifficultyInfo.Count; i++)
                {
                    GUILayout.Space(5f);
                    EditorGUILayout.BeginHorizontal();
                    {
                        m_lstDifficultyInfo[i].Name = EditorGUILayout.TextField(m_lstDifficultyInfo[i].Name, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Offset = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Offset, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Range = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Range, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        // tmp list
                        List <UserTalentInfo> effectList = new List <UserTalentInfo>();
                        foreach (string talentName in m_lstDifficultyInfo[i].TalentEffects.Keys)
                        {
                            UserTalentInfo effect = new UserTalentInfo();
                            effect.TalentName  = talentName;
                            effect.TalentValue = m_lstDifficultyInfo[i].TalentEffects[talentName];
                            effectList.Add(effect);
                        }
                        // update data
                        for (int num = 0; num < effectList.Count; num++)
                        {
                            effectList[num].TalentValue = EditorGUILayout.Slider(effectList[num].TalentValue, -1f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                            GUILayout.Space(5f);
                            m_lstDifficultyInfo[i].TalentEffects[effectList[num].TalentName] = effectList[num].TalentValue;
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                    GUILayout.Space(5f);
                    GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
                }
            }
        }
        EditorGUILayout.EndScrollView();
        #endregion

        m_DifficultyLastCount = m_DifficultyCount;
    }
Example #5
0
    private void OnGUI()
    {
        // Setting
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            if (GUILayout.Button("重置", GUILayout.Width(60f)))
            {
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button("保存", GUILayout.Width(60f)))
            {
                SaveFile();
                Repaint();
            }
            if (GUILayout.Button("同步", GUILayout.Width(60f)))
            {
                SysnFile();
                //LoadFile();
                Repaint();
            }
            if (GUILayout.Button("合并", GUILayout.Width(60f)))
            {
                MergeFile();
                //LoadFile();
                Repaint();
            }
        }
        EditorGUILayout.EndHorizontal();
        // Talent Count
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            GUILayout.Space(5f);
            EditorGUILayout.LabelField("天赋数量:", GUILayout.Width(60f));
            m_UserTalentCount = EditorGUILayout.IntField(m_UserTalentCount, GUILayout.Width(60f));
            GUILayout.Space(5f);
            if (GUILayout.Button("+", EditorStyles.miniButtonLeft, GUILayout.Width(30f)))
            {
                m_UserTalentCount++;
            }
            if (GUILayout.Button("-", EditorStyles.miniButtonRight, GUILayout.Width(30f)))
            {
                if (m_UserTalentCount > 0)
                {
                    m_UserTalentCount--;
                }
            }
            //Init Data
            if (m_UserTalentCount < m_UserTalentLastCount && m_UserTalentCount >= 0)
            {
                int removeCount = m_UserTalentLastCount - m_UserTalentCount;
                for (int i = 0; i < removeCount; i++)
                {
                    m_lstUserTalents.RemoveAt(m_lstUserTalents.Count - 1);
                }
            }
            else if (m_UserTalentCount > m_UserTalentLastCount)
            {
                int extraCount = m_UserTalentCount - m_UserTalentLastCount;
                for (int i = 0; i < extraCount; i++)
                {
                    UserTalentInfo tmpData = new UserTalentInfo();
                    tmpData.TalentName  = "";
                    tmpData.TalentValue = 0f;
                    m_lstUserTalents.Add(tmpData);
                }
            }
        }
        EditorGUILayout.EndHorizontal();
        // Talent Data
        GUILayout.Space(15f);
        if (m_lstUserTalents != null && m_lstUserTalents.Count > 0)
        {
            for (int i = 0; i < m_lstUserTalents.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                {
                    EditorGUILayout.LabelField("天赋名称: ", GUILayout.Width(60f));
                    m_lstUserTalents[i].TalentName = EditorGUILayout.TextField(m_lstUserTalents[i].TalentName, GUILayout.Width(60f));
                    EditorGUILayout.LabelField("默认值: ", GUILayout.Width(60f));
                    m_lstUserTalents[i].TalentValue = EditorGUILayout.Slider(m_lstUserTalents[i].TalentValue, 0f, 1f);
                    if (GUILayout.Button("X", GUILayout.Width(20f)))
                    {
                        var option = EditorUtility.DisplayDialog("确定要删除吗?",
                                                                 "确定吗?确定吗?确定吗?确定吗?确定吗?",
                                                                 "确定", "取消");
                        if (option)
                        {
                            m_lstUserTalents.RemoveAt(i);
                            m_UserTalentCount--;
                            Repaint();
                            break;
                        }
                    }
                }
                EditorGUILayout.EndHorizontal();
            }
        }

        m_UserTalentLastCount = m_UserTalentCount;
    }
    private void OnGUI()
    {
        #region Setting
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            if (GUILayout.Button("重置", GUILayout.Width(60f)))
            {
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button(m_lstDifficultyInfo == null ? "生成" : "保存", GUILayout.Width(60f)))
            {
                SaveFile();
                Repaint();
            }
            if (GUILayout.Button("同步", GUILayout.Width(60f)))
            {
                SysnFile();
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button("合并", GUILayout.Width(60f)))
            {
                MergeFile();
                LoadFile();
                Repaint();
            }

        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Game ID
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            EditorGUILayout.LabelField("游戏ID : ", GUILayout.Width(60f));
            m_GameID_InputField = EditorGUILayout.IntField(m_GameID_InputField, GUILayout.Width(60f));
            if (GUILayout.Button("加载", GUILayout.Width(60f)))
            {
                m_GameID = m_GameID_InputField;
                //GUI.SetNextControlName("Input");
                //EditorUtility.DisplayDialog("加载成功", "加载成功", "确定");
                //GUI.FocusControl("Input");
                Refresh();
                this.Focus();
            }

            GUILayout.Space(15f);
            EditorGUILayout.LabelField("显示宽度 : ", GUILayout.Width(60f));
            m_fNodeSpace = EditorGUILayout.Slider(m_fNodeSpace, 100f, 300f, GUILayout.Width(200f));
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        if (m_lstDifficultyInfo == null)
            return;

        #region Difficulty Count
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            GUILayout.Space(5f);
            EditorGUILayout.LabelField("难度维度:", GUILayout.Width(60f));
            m_DifficultyCount = EditorGUILayout.IntField(m_DifficultyCount, GUILayout.Width(60f));
            GUILayout.Space(5f);
            if (GUILayout.Button("+", EditorStyles.miniButtonLeft, GUILayout.Width(30f)))
            {
                m_DifficultyCount++;
            }
            if (GUILayout.Button("-", EditorStyles.miniButtonRight, GUILayout.Width(30f)))
            {
                if (m_DifficultyCount > 0)
                    m_DifficultyCount--;
            }
            //Init Data
            if (m_DifficultyCount < m_DifficultyLastCount && m_DifficultyCount >= 0)
            {
                int removeCount = m_DifficultyLastCount - m_DifficultyCount;
                for (int i = 0; i < removeCount; i++)
                {
                    m_lstDifficultyInfo.RemoveAt(m_lstDifficultyInfo.Count - 1);
                }
            }
            else if (m_DifficultyCount > m_DifficultyLastCount)
            {
                int extraCount = m_DifficultyCount - m_DifficultyLastCount;
                for (int i = 0; i < extraCount; i++)
                {
                    DifficultyInfo tmpData = new DifficultyInfo();
                    tmpData.Name = "";
                    tmpData.Offset = 0f;
                    tmpData.Range = 0f;
                    tmpData.TalentEffects = new Dictionary<string, float>();
                    DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                    foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                    {
                        tmpData.TalentEffects.Add(talentName, 0f);
                    }
                    m_lstDifficultyInfo.Add(tmpData);
                }
            }
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Difficuly Data
        m_EventScorllPos = EditorGUILayout.BeginScrollView(m_EventScorllPos);
        {
            // Data Name
            GUILayout.Space(15f);
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("难度 \\ 天赋", GUILayout.Width(m_fNodeSpace));
                //GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandHeight(true), GUILayout.Width(1) });
                // Offset & Range
                EditorGUILayout.LabelField("基础值", GUILayout.Width(m_fNodeSpace));
                EditorGUILayout.LabelField("浮动范围", GUILayout.Width(m_fNodeSpace));
                // Talent Effect
                DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                {
                    EditorGUILayout.LabelField(talentName, GUILayout.Width(m_fNodeSpace));
                }
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
            // Data List
            if (m_lstDifficultyInfo != null && m_lstDifficultyInfo.Count > 0)
            {
                for (int i = 0; i < m_lstDifficultyInfo.Count; i++)
                {
                    GUILayout.Space(5f);
                    EditorGUILayout.BeginHorizontal();
                    {
                        m_lstDifficultyInfo[i].Name = EditorGUILayout.TextField(m_lstDifficultyInfo[i].Name, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Offset = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Offset, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Range = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Range, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        // tmp list
                        List<UserTalentInfo> effectList = new List<UserTalentInfo>();
                        foreach (string talentName in m_lstDifficultyInfo[i].TalentEffects.Keys)
                        {
                            UserTalentInfo effect = new UserTalentInfo();
                            effect.TalentName = talentName;
                            effect.TalentValue = m_lstDifficultyInfo[i].TalentEffects[talentName];
                            effectList.Add(effect);
                        }
                        // update data
                        for (int num = 0; num < effectList.Count; num++)
                        {
                            effectList[num].TalentValue = EditorGUILayout.Slider(effectList[num].TalentValue, -1f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                            GUILayout.Space(5f);
                            m_lstDifficultyInfo[i].TalentEffects[effectList[num].TalentName] = effectList[num].TalentValue;
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                    GUILayout.Space(5f);
                    GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
                }
            }
        }
        EditorGUILayout.EndScrollView();
        #endregion

        m_DifficultyLastCount = m_DifficultyCount;
    }