diff --git a/Assets/05.TableTextConversion/Editor/ConvertedExslDataMessage.cs b/Assets/05.TableTextConversion/Editor/ConvertedExslDataMessage.cs index c55209b..a528c82 100644 --- a/Assets/05.TableTextConversion/Editor/ConvertedExslDataMessage.cs +++ b/Assets/05.TableTextConversion/Editor/ConvertedExslDataMessage.cs @@ -86,8 +86,9 @@ namespace Stary.Evo.TableTextConversion { for (int i = 0; i < result.Tables.Count; i++) { + var table = result.Tables[i]; //开始遍历说有table表 - int oneRows = result.Tables[i].Rows.Count; //行数 + int oneRows = table.Rows.Count; //行数 Dictionary dict_Question = new Dictionary(); Dictionary dict_Menu = new Dictionary(); @@ -96,18 +97,18 @@ namespace Stary.Evo.TableTextConversion int VoiceCount = 0; for (int j = 0; j < oneRows; j++) { - string key = FilterTo(result.Tables[i].Rows[j][0].ToString()); - if (!string.IsNullOrEmpty(key)) - { - VoiceCount++; - } + // string key = FilterTo(table.Rows[j][0].ToString()); + // if (!string.IsNullOrEmpty(key)) + // { + VoiceCount++; + // } } #endregion #region AudioTableData - if (result.Tables[i].TableName == "audio") + if (table.TableName.ToLower() == "audio") { #region 遍历表格相应的数据转换成数据 @@ -118,21 +119,25 @@ namespace Stary.Evo.TableTextConversion //获取对话块 messageInfo.index = j - 1; //文件名称 - messageInfo.auid = FilterTo(result.Tables[i].Rows[j][0].ToString()); + messageInfo.auid = FilterTo(table.Rows[j][0].ToString()); //获取内容 - messageInfo.autype = Enum.TryParse(FilterTo(result.Tables[i].Rows[j][1].ToString()), out AudioTableData.AudioType auType)? auType : AudioTableData.AudioType.Null; + messageInfo.autype = + Enum.TryParse(FilterTo(table.Rows[j][1].ToString()), + out AudioTableData.AudioType auType) + ? auType + : AudioTableData.AudioType.Null; //获取描述 - messageInfo.filename = FilterTo(result.Tables[i].Rows[j][2].ToString()); + messageInfo.filename = FilterTo(table.Rows[j][2].ToString()); - messageInfo.voice = FilterTo(result.Tables[i].Rows[j][3].ToString()); + messageInfo.voice = FilterTo(table.Rows[j][3].ToString()); - messageInfo.trigger = FilterTo(result.Tables[i].Rows[j][4].ToString()); - messageInfo.uirelated =FilterTo(result.Tables[i].Rows[j][5].ToString()); - messageInfo.description = FilterTo(result.Tables[i].Rows[j][6].ToString()); - - messageInfo.format = FilterTo(result.Tables[i].Rows[j][7].ToString()); - messageInfo.notes = FilterTo(result.Tables[i].Rows[j][8].ToString()); + messageInfo.trigger = FilterTo(table.Rows[j][4].ToString()); + messageInfo.uirelated = FilterTo(table.Rows[j][5].ToString()); + messageInfo.description = FilterTo(table.Rows[j][6].ToString()); + + messageInfo.format = FilterTo(table.Rows[j][7].ToString()); + messageInfo.notes = FilterTo(table.Rows[j][8].ToString()); //添加数据 messageInfos.Add(messageInfo); } @@ -147,9 +152,10 @@ namespace Stary.Evo.TableTextConversion } #endregion + #region VideoTableData - if (result.Tables[i].TableName == "video") + if (table.TableName.ToLower() == "video") { #region 遍历表格相应的数据转换成数据 @@ -160,18 +166,23 @@ namespace Stary.Evo.TableTextConversion //获取对话块 messageInfo.index = j - 1; //文件名称 - messageInfo.vidid = FilterTo(result.Tables[i].Rows[j][0].ToString()); + messageInfo.vidid = FilterTo(table.Rows[j][0].ToString()); //获取内容 - messageInfo.filename = FilterTo(result.Tables[i].Rows[j][1].ToString()); + messageInfo.filename = FilterTo(table.Rows[j][1].ToString()); //获取描述 - messageInfo.vidtype = FilterTo(result.Tables[i].Rows[j][2].ToString()); + messageInfo.vidtype = FilterTo(table.Rows[j][2].ToString()); - messageInfo.location = FilterTo(result.Tables[i].Rows[j][3].ToString()); + messageInfo.location = FilterTo(table.Rows[j][3].ToString()); - messageInfo.time = float.TryParse(FilterTo(result.Tables[i].Rows[j][4].ToString()), out float start) ? start : 0; - messageInfo.subtitle = FilterTo(result.Tables[i].Rows[j][5].ToString()).Equals("是")? true : false; - messageInfo.notes = FilterTo(result.Tables[i].Rows[j][6].ToString()); + messageInfo.time = + float.TryParse(FilterTo(table.Rows[j][4].ToString()), out float start) + ? start + : 0; + messageInfo.subtitle = FilterTo(table.Rows[j][5].ToString()).Equals("是") + ? true + : false; + messageInfo.notes = FilterTo(table.Rows[j][6].ToString()); //添加数据 messageInfos.Add(messageInfo); } @@ -186,39 +197,86 @@ namespace Stary.Evo.TableTextConversion } #endregion + #region UITableData - if (result.Tables[i].TableName == "ui") + if (table.TableName.ToLower() == "ui") { #region 遍历表格相应的数据转换成数据 List messageInfos = new List(); + UITableData.MessageInfo messageInfo = null; + List subtitle = null; + int infoIndex = 0; for (int j = 1; j < VoiceCount; j++) { - UITableData.MessageInfo messageInfo = new UITableData.MessageInfo(); - //获取对话块 - messageInfo.index = j - 1; - //文件名称 - messageInfo.uiid = FilterTo(result.Tables[i].Rows[j][0].ToString()); - //获取内容 - messageInfo.filename = FilterTo(result.Tables[i].Rows[j][1].ToString()); + Debug.Log(j); + if (!table.Rows[j][0].ToString().Equals("")) + { + Debug.Log(table.Rows[j][0].ToString()); + messageInfo = new UITableData.MessageInfo(); + subtitle = new List(); + messageInfo.subtitle = subtitle; + //获取对话块 + messageInfo.index = infoIndex; + //文件名称 + messageInfo.uiid = FilterTo(table.Rows[j][0].ToString()); + //获取内容 + messageInfo.filename = FilterTo(table.Rows[j][1].ToString()); - //获取描述 - messageInfo.uitype = FilterTo(result.Tables[i].Rows[j][2].ToString()); + //获取描述 + messageInfo.uitype = FilterTo(table.Rows[j][2].ToString()); - messageInfo.nodelocation = FilterTo(result.Tables[i].Rows[j][3].ToString()); + if (!table.Rows[j][3].ToString().Equals("")) + { + var subtitleInfo = new UITableData.SubtitleInfo(); + subtitleInfo.lineid = FilterTo(table.Rows[j][3].ToString()); + subtitleInfo.subtitle = FilterTo(table.Rows[j][4].ToString()); + subtitleInfo.start = + float.TryParse(FilterTo(table.Rows[j][5].ToString()), + out float start) + ? start + : 0; + subtitleInfo.end = float.TryParse(FilterTo(table.Rows[j][6].ToString()), + out float end) + ? end + : 0; + messageInfo.subtitle.Add(subtitleInfo); + } - messageInfo.description = FilterTo(result.Tables[i].Rows[j][4].ToString()); - messageInfo.displaycondition = FilterTo(result.Tables[i].Rows[j][5].ToString()); - - messageInfo.animationrequirement = FilterTo(result.Tables[i].Rows[j][6].ToString()); - messageInfo.size = FilterTo(result.Tables[i].Rows[j][7].ToString()); - messageInfo.format = FilterTo(result.Tables[i].Rows[j][8].ToString()); - messageInfo.notes = FilterTo(result.Tables[i].Rows[j][9].ToString()); - //添加数据 - messageInfos.Add(messageInfo); + messageInfo.nodelocation = FilterTo(table.Rows[j][7].ToString()); + + messageInfo.description = FilterTo(table.Rows[j][8].ToString()); + messageInfo.displaycondition = FilterTo(table.Rows[j][9].ToString()); + + messageInfo.animationrequirement = FilterTo(table.Rows[j][10].ToString()); + messageInfo.size = FilterTo(table.Rows[j][11].ToString()); + messageInfo.format = FilterTo(table.Rows[j][12].ToString()); + messageInfo.notes = FilterTo(table.Rows[j][13].ToString()); + //添加数据 + messageInfos.Add(messageInfo); + infoIndex++; + } + else + { + if (!table.Rows[j][3].ToString().Equals("")) + { + var subtitleInfo = new UITableData.SubtitleInfo(); + subtitleInfo.lineid = FilterTo(table.Rows[j][3].ToString()); + subtitleInfo.subtitle = FilterTo(table.Rows[j][4].ToString()); + subtitleInfo.start = + float.TryParse(FilterTo(table.Rows[j][5].ToString()), + out float start) + ? start + : 0; + subtitleInfo.end = float.TryParse(FilterTo(table.Rows[j][6].ToString()), + out float end) + ? end + : 0; + messageInfo.subtitle.Add(subtitleInfo); + } + } } - #endregion @@ -230,6 +288,7 @@ namespace Stary.Evo.TableTextConversion } #endregion + #endregion } } diff --git a/Assets/05.TableTextConversion/RunTime/Base/UITableData.cs b/Assets/05.TableTextConversion/RunTime/Base/UITableData.cs index 95a7224..68d3524 100644 --- a/Assets/05.TableTextConversion/RunTime/Base/UITableData.cs +++ b/Assets/05.TableTextConversion/RunTime/Base/UITableData.cs @@ -22,6 +22,7 @@ namespace Stary.Evo.TableTextConversion public string filename; public string uitype; + public List subtitle; public string nodelocation; @@ -34,6 +35,14 @@ namespace Stary.Evo.TableTextConversion public string notes; } + [Serializable] + public class SubtitleInfo + { + public string lineid; + public string subtitle; + public float start; + public float end; + } } } diff --git a/Assets/05.TableTextConversion/package.json b/Assets/05.TableTextConversion/package.json index 8308c69..073ae8b 100644 --- a/Assets/05.TableTextConversion/package.json +++ b/Assets/05.TableTextConversion/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.tabletextconversion", - "version": "1.0.8", + "version": "1.0.9", "displayName": "05.TableTextConversion", "description": "表格转化工具", "unity": "2021.3",