private void DrawPlayerEditorDataValueType(PlayerDataEditorData data, bool useLabel, Rect rect = default(Rect))
        {
            string labelValueDataType = (useLabel) ? "Value Data Type" : string.Empty;

            if (PlayerDataEditorStaticData.LIST_DATA_TYPE.Equals(data.baseDataType) ||
                PlayerDataEditorStaticData.DICTIONARY_DATA_TYPE.Equals(data.baseDataType))
            {
                EditorGUI.BeginChangeCheck();
                data.valueDataType = EditorUtilities.DrawStringPopup(labelValueDataType, data.valueDataType, PlayerDataEditorStaticData.valueSupportedDataType, rect);
                {
                    data.key = PlayerDataEditorUtilities.EvaluatePlayerDataEditorKey(data);
                }
            }
        }
 private void DrawAddData()
 {
     if (EditorUtilities.DrawFoldout("Add New Save Key", addData))
     {
         EditorGUILayout.BeginVertical(EditorStyles.textArea);
         DrawPlayerEditorData(addData, true);
         EditorGUI.BeginDisabledGroup(true);
         EditorGUILayout.TextField("Final Key Result", PlayerDataEditorUtilities.EvaluatePlayerDataEditorKey(addData));
         EditorGUI.EndDisabledGroup();
         if (GUILayout.Button("Add New Save Key"))
         {
             addData.key = PlayerDataEditorUtilities.EvaluatePlayerDataEditorKey(addData);
             cachedPlayerEditorData.Add((PlayerDataEditorData)addData.Clone());
             RefreshDataTable(false);
         }
         EditorGUILayout.EndVertical();
     }
 }