void SelectLanguageGUI() { GUILayout.BeginHorizontal(); string[] mask = s_languageList.ToArray(); m_currentSelectIndex = EditorGUILayout.Popup("当前语言:", m_currentSelectIndex, mask); if (mask.Length != 0 && m_currentSelectIndex >= 0 && m_currentSelectIndex < mask.Length) { LoadLanguage(mask[m_currentSelectIndex]); } else { Debug.Log("m_currentSelectIndex " + m_currentSelectIndex + " mask.Length " + mask.Length); } if (!string.IsNullOrEmpty(m_currentLanguage) && GUILayout.Button("加载上一次保存")) { DataManager.CleanCache(); LanguageManager.IsInit = false; DataEditorWindow.Refresh(); ConfigManager.CleanCache(); LoadLanguage(m_currentLanguage); GUI.FocusControl(""); } GUILayout.EndHorizontal(); }
public static void ShowWindow() { win = EditorWindow.GetWindow <DataEditorWindow>(); win.autoRepaintOnSceneChange = true; FocusWindowIfItsOpen <DataEditorWindow>(); win.wantsMouseMove = true; }
//编辑角色数据 private void EditorPlayerDataGUI() { if (m_curPlayerIndex == 0) { return; } var fieldData = new SingleField(FieldType.String, playerId, null); playerId = EditorUtilGUI.FieldGUI_Type(fieldData, "角色ID"); fieldData = new SingleField(FieldType.String, playerName, null); playerName = EditorUtilGUI.FieldGUI_Type(fieldData, "角色名"); fieldData = new SingleField(FieldType.String, startTalkId, null); startTalkId = EditorUtilGUI.FieldGUI_Type(fieldData, "初始对话ID"); if (GUILayout.Button("保存")) { playerContent["player_id"] = playerId; playerContent["player_name"] = playerName; playerContent["start_talk_id"] = startTalkId; //设置字段类型 m_curPlayerDatas.SetFieldType("player_id", FieldType.String); m_curPlayerDatas.SetFieldType("player_name", FieldType.String); m_curPlayerDatas.SetFieldType("start_talk_id", FieldType.String); m_curPlayerDatas.SetData(playerContent); DataEditorWindow.SaveData(m_playerCfgName, m_curPlayerDatas); } }
//创建对话 private void CreateNewTalk(string _talkId) { m_talkContent = new SingleData(); m_talkContent.Add("talk_id", _talkId); if (m_playerTalkDatas.TableKeys.Count == 0) { m_playerTalkDatas.TableKeys.Add("talk_id"); } m_playerTalkDatas.AddData(m_talkContent); DataEditorWindow.SaveData(GetTalkConfigName(), m_playerTalkDatas); PrepareTalk(); }
void SaveData() { SaveEditorConfig(); SaveConfig(); if (m_currentLanguage != "None") { if (m_langeuageDataDict.ContainsKey(selectEditorModuleName)) { SaveData(GetLanguageSavePath(m_currentLanguage, selectEditorModuleName), m_langeuageDataDict[selectEditorModuleName]); } } LanguageManager.IsInit = false; ConfigManager.CleanCache(); DataEditorWindow.Refresh(); }
/// <summary> /// Opens the <paramref name="file"/> in it's associated editor /// </summary> /// <summary xml:lang="ru"> /// Открывает файл <paramref name="file"/> в ассоциированным с его типом редакторе /// </summary> /// <param name="file">File to be opened</param> /// <param name="file" xml:lang="ru">Файл который необходимо открыть</param> public static void OpenFile(GameFile file) { // TODO: создать объект с расширениями файлов switch (file.Extension.ToLower()) { case ".gxt": GXTEditorWindow gxtEditorWindow = new GXTEditorWindow(); gxtEditorWindow.OpenFile(new GXTFile(file.FullPath)); gxtEditorWindow.Show(); break; case ".fxt": FXTEditorWindow fxtEditorWindow = new FXTEditorWindow(); fxtEditorWindow.OpenFile(new FXTFile(file.FullPath)); fxtEditorWindow.Show(); break; case ".ide": TestWindow testWindow = new TestWindow(); testWindow.OpenFile(new IDEFile(file.FullPath)); testWindow.Show(); break; case ".ipl": case ".dat": case ".txt": case ".log": case ".cfg": case ".ini": case ".zon": DataEditorWindow dataEditorWindow = new DataEditorWindow(); dataEditorWindow.OpenFile(new TextFile(file.FullPath)); dataEditorWindow.Show(); break; case ".img": FileBrowserWindow.GetInstance().OpenArchive((ArchiveFile)file); break; default: MessageBox.Show("Unsupported file type.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } }
private void AddPlayerGUI() { //当前没有选中角色时时,才显示 if (m_curPlayerIndex != 0) { return; } newPlayerisFold = EditorGUILayout.Foldout(newPlayerisFold, "创建角色"); if (newPlayerisFold) { EditorGUI.indentLevel++; var fieldData = new SingleField(FieldType.String, playerId, null); playerId = EditorUtilGUI.FieldGUI_Type(fieldData, "角色ID"); if (string.IsNullOrEmpty(playerId)) { EditorGUILayout.LabelField("输入要添加的ID(角色id从101开始)=,,="); } else if (m_curPlayerDatas.ContainsKey(playerId)) { EditorGUILayout.LabelField("重复啦=..="); } EditorGUILayout.Space(); if (!m_curPlayerDatas.ContainsKey(playerId) && !string.IsNullOrEmpty(playerId)) { EditorGUILayout.Space(); if (GUILayout.Button("创建")) { playerContent = new SingleData(); playerContent.Add("player_id", playerId); m_curPlayerDatas.AddData(playerContent); DataEditorWindow.SaveData(m_playerCfgName, m_curPlayerDatas); PreparePlayerData(); } EditorGUILayout.Space(); } EditorGUILayout.Space(); } }
void SaveData() { SaveEditorConfig(); SaveConfig(); if (m_currentLanguage != "None") { if (m_langeuageDataDict.ContainsKey(selectEditorModuleName)) { SaveData(GetLanguageSavePath(m_currentLanguage, selectEditorModuleName), m_langeuageDataDict[selectEditorModuleName]); } //foreach (var item in m_langeuageDataDict) //{ // SaveData(GetLanguageSavePath(m_currentLanguage, item.Key), item.Value); //} } LanguageManager.IsInit = false; DataEditorWindow.Refresh(); ConfigManager.CleanCache(); }
void Import() { string key = GetKey(m_poemType, m_defaultLevel, m_index); SingleData dt = new SingleData(); dt.Add("poemName", poemName); dt.Add("author", author); dt.Add("description", description); dt.Add("poemID", key); string contentTmp = ""; for (int i = 0; i < poemContent.Count; i++) { contentTmp += poemContent[i]; if (i != poemContent.Count - 1) { contentTmp += "|"; } } dt.Add("content", contentTmp); data.AddData(dt); DataEditorWindow.SaveData(c_dataName, data); oldContent = content; content = ""; poemName = ""; author = ""; description = ""; poemContent.Clear(); GUI.FocusControl("button"); //GUI.FocusControl("inputContent"); }
//对话编辑和跳转 private void EditorTalkGUI() { if (string.IsNullOrEmpty(m_talkId)) { return; } //todo 向上一个跳转 如果没上一个对话,则不显示跳转按钮 //遍历所有对话,找到 EditorGUILayout.Space(); EditorTalkContentGUI(); EditorGUILayout.Space(); if (GUILayout.Button("保存对话")) { for (var i = 0; i < m_maxTalkContentCnt; ++i) { var pTalkKey = string.Format("p_talk_text_{0}", i + 1); m_talkContent[pTalkKey] = m_pTalkText[i]; m_playerTalkDatas.SetFieldType(pTalkKey, FieldType.String); var nTalkKey = string.Format("n_talk_text_{0}", i + 1); m_talkContent[nTalkKey] = m_nTalkText[i]; m_playerTalkDatas.SetFieldType(nTalkKey, FieldType.String); var nextTalkIdKey = string.Format("next_talk_id_{0}", i + 1); m_talkContent[nextTalkIdKey] = m_nextTalkId[i]; m_playerTalkDatas.SetFieldType(nextTalkIdKey, FieldType.String); } m_playerTalkDatas.SetData(m_talkContent); DataEditorWindow.SaveData(GetTalkConfigName(), m_playerTalkDatas); } }
static void SaveDataTable() { DataTable data = new DataTable(); data.TableKeys.Add("GuideID"); data.TableKeys.Add(GuideSystemBase.c_guideStartPoint); data.SetDefault(GuideSystemBase.c_guideStartPoint, "False"); data.SetNote(GuideSystemBase.c_guideStartPoint, "引导开始点"); data.SetFieldType(GuideSystemBase.c_guideStartPoint, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_guideEndPoint); data.SetDefault(GuideSystemBase.c_guideEndPoint, "False"); data.SetNote(GuideSystemBase.c_guideEndPoint, "引导结束点"); data.SetFieldType(GuideSystemBase.c_guideEndPoint, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_guideClosePoint); data.SetDefault(GuideSystemBase.c_guideEndPoint, "False"); data.SetNote(GuideSystemBase.c_guideEndPoint, "引导关闭点"); data.SetFieldType(GuideSystemBase.c_guideClosePoint, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_PremiseKey); data.SetDefault(GuideSystemBase.c_PremiseKey, "Null"); data.SetNote(GuideSystemBase.c_PremiseKey, "前提条件"); data.SetFieldType(GuideSystemBase.c_PremiseKey, FieldType.String, null); data.TableKeys.Add(GuideSystemBase.c_NextGuideNameKey); data.SetDefault(GuideSystemBase.c_NextGuideNameKey, "Null"); data.SetNote(GuideSystemBase.c_NextGuideNameKey, "下一步引导,如果为空,则为下一条记录"); data.SetFieldType(GuideSystemBase.c_NextGuideNameKey, FieldType.String, null); data.TableKeys.Add(GuideSystemBase.c_ClickToNextKey); data.SetDefault(GuideSystemBase.c_ClickToNextKey, "False"); data.SetNote(GuideSystemBase.c_ClickToNextKey, "是否接收点击去下一步引导"); data.SetFieldType(GuideSystemBase.c_ClickToNextKey, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_CallToNextKey); data.SetDefault(GuideSystemBase.c_CallToNextKey, "False"); data.SetNote(GuideSystemBase.c_CallToNextKey, "是否接收调用去下一步引导"); data.SetFieldType(GuideSystemBase.c_CallToNextKey, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_ConditionToNextKey); data.SetDefault(GuideSystemBase.c_ConditionToNextKey, "False"); data.SetNote(GuideSystemBase.c_ConditionToNextKey, "是否自动判断条件去下一步引导"); data.SetFieldType(GuideSystemBase.c_ConditionToNextKey, FieldType.Bool, null); data.TableKeys.Add(GuideSystemBase.c_GuideWindowNameKey); data.SetDefault(GuideSystemBase.c_GuideWindowNameKey, "Null"); data.SetNote(GuideSystemBase.c_GuideWindowNameKey, "引导的界面名字"); data.SetFieldType(GuideSystemBase.c_GuideWindowNameKey, FieldType.String, null); data.TableKeys.Add(GuideSystemBase.c_GuideObjectNameKey); data.SetDefault(GuideSystemBase.c_GuideObjectNameKey, "Null"); data.SetNote(GuideSystemBase.c_GuideObjectNameKey, "高亮显示的对象名字"); data.SetFieldType(GuideSystemBase.c_GuideObjectNameKey, FieldType.StringArray, null); data.TableKeys.Add(GuideSystemBase.c_GuideItemNameKey); data.SetDefault(GuideSystemBase.c_GuideItemNameKey, "Null"); data.SetNote(GuideSystemBase.c_GuideItemNameKey, "高亮的Item名字"); data.SetFieldType(GuideSystemBase.c_GuideItemNameKey, FieldType.StringArray, null); data.TableKeys.Add(GuideSystemBase.c_TipContentKey); data.SetDefault(GuideSystemBase.c_TipContentKey, "Null"); data.SetNote(GuideSystemBase.c_TipContentKey, "提示文本内容"); data.SetFieldType(GuideSystemBase.c_TipContentKey, FieldType.String, null); data.TableKeys.Add(GuideSystemBase.c_TipContentPosKey); data.SetDefault(GuideSystemBase.c_TipContentPosKey, "0,0,0"); data.SetNote(GuideSystemBase.c_TipContentPosKey, "提示文本位置"); data.SetFieldType(GuideSystemBase.c_TipContentPosKey, FieldType.Vector3, null); data.TableKeys.Add(GuideSystemBase.c_MaskAlphaKey); data.SetDefault(GuideSystemBase.c_MaskAlphaKey, "0.75"); data.SetNote(GuideSystemBase.c_MaskAlphaKey, "遮罩Alpha"); data.SetFieldType(GuideSystemBase.c_MaskAlphaKey, FieldType.Float, null); DataEditorWindow.SaveData(GuideSystemBase.c_guideDataName, data); }
void CreateModuleByConfigData() { m_newModelName = EditorGUILayout.TextField("模块名", m_newModelName); tableName = EditorDrawGUIUtil.DrawPopup("表格名", tableName, configFileNames, (value) => { if (string.IsNullOrEmpty(value)) { return; } fieldNames.Clear(); DataTable d = DataManager.GetData(value); List <string> tempList = new List <string>(); foreach (var item in d.TableKeys) { if (d.m_tableTypes.ContainsKey(item) && d.m_tableTypes[item] == FieldType.String) { tempList.Add(item); } } fieldNames.AddRange(tempList); }); fieldName = EditorDrawGUIUtil.DrawPopup("字段名", fieldName, fieldNames); if (m_newModelName != "" && !s_languageKeyDict.ContainsKey(m_newModelName) && m_currentLanguage != "None") { if (GUILayout.Button("新增模块")) { string modulePath = m_newModelName.Replace("_", "/"); DataTable d = DataManager.GetData(tableName); s_languageKeyDict.Add(m_newModelName, d.TableIDs); DataTable data = new DataTable(); data.TableKeys.Add(LanguageManager.c_mainKey); data.TableKeys.Add(LanguageManager.c_valueKey); data.SetDefault(LanguageManager.c_valueKey, "NoValue"); foreach (var item in d.TableIDs) { object obj = null; if (d[item].ContainsKey(fieldName)) { obj = d[item][fieldName]; } else { obj = d.m_defaultValue[fieldName]; } SingleData sd = new SingleData(); sd.Add(LanguageManager.c_mainKey, item); sd.Add(LanguageManager.c_valueKey, obj.ToString()); data.AddData(sd); d[item][fieldName] = modulePath + "/" + item; } d.m_fieldAssetTypes[fieldName] = DataFieldAssetType.LocalizedLanguage; m_langeuageDataDict.Add(m_newModelName, data); DataEditorWindow.SaveData(tableName, d); SaveData(); AssetDatabase.Refresh(); } EditorGUILayout.Space(); } else { if (s_languageKeyDict.ContainsKey(m_newModelName)) { EditorGUILayout.LabelField("模块名重复!", EditorGUIStyleData.WarnMessageLabel); } } }
static void Init() { DataEditorWindow window = (DataEditorWindow)EditorWindow.GetWindow(typeof(DataEditorWindow)); window.Show(); }
private void DeleteDatabase() { item.Parent.Repository.DeleteDatabase(item.DatabaseName); DataEditorWindow.Refresh(); Selection.SetActiveObjectWithContext(null, null); }
/// <summary> /// This is called when data inside the database have been /// modified by the custom inspector /// </summary> public void HasBeenModified() { Parent.Repository.SaveDatabase(DatabaseName, Database); DataEditorWindow.Refresh(); }