void CreatDataCSharpFile(string dataName, DataTable data) { string className = dataName + "Generate"; string content = ""; content += "using System;\n"; content += "using UnityEngine;\n\n"; content += @"//" + className + "类\n"; content += @"//该类自动生成请勿修改,以避免不必要的损失"; content += "\n"; content += "public class " + className + " : DataGenerateBase \n"; content += "{\n"; content += "\tpublic string m_key;\n"; //type List <string> type = new List <string>(data.m_tableTypes.Keys); if (type.Count > 0) { for (int i = 1; i < data.TableKeys.Count; i++) { string key = data.TableKeys[i]; string enumType = null; if (data.m_tableEnumTypes.ContainsKey(key)) { enumType = data.m_tableEnumTypes[key]; } string note = ";"; if (data.m_noteValue.ContainsKey(key)) { note = @"; //" + data.m_noteValue[key]; } content += "\t"; if (data.m_tableTypes.ContainsKey(key)) { //访问类型 + 字段类型 + 字段名 content += "public " + OutPutFieldName(data.m_tableTypes[key], enumType) + " m_" + key + note; } //默认字符类型 else { //访问类型 + 字符串类型 + 字段名 content += "public " + "string" + " m_" + key + note; } content += "\n"; } } content += "\n"; content += "\tpublic override void LoadData(string key) \n"; content += "\t{\n"; content += "\t\tDataTable table = DataManager.GetData(\"" + dataName + "\");\n\n"; content += "\t\tif (!table.ContainsKey(key))\n"; content += "\t\t{\n"; content += "\t\t\tthrow new Exception(\"" + className + " LoadData Exception Not Fond key ->\" + key + \"<-\");\n"; content += "\t\t}\n"; content += "\n"; content += "\t\tSingleData data = table[key];\n\n"; content += "\t\tm_key = key;\n"; if (type.Count > 0) { for (int i = 1; i < data.TableKeys.Count; i++) { string key = data.TableKeys[i]; content += "\t\t"; string enumType = null; if (data.m_tableEnumTypes.ContainsKey(key)) { enumType = data.m_tableEnumTypes[key]; } if (data.m_tableTypes.ContainsKey(key)) { content += "m_" + key + " = data." + OutPutFieldFunction(data.m_tableTypes[key], enumType) + "(\"" + key + "\")"; } //默认字符类型 else { content += "m_" + key + " = data." + OutPutFieldFunction(data.m_tableTypes[key], enumType) + "(\"" + key + "\")"; } content += ";\n"; } } content += "\t}\n"; content += "}\n"; string SavePath = Application.dataPath + "/Script/DataClassGenerate/" + className + ".cs"; ResourceIOTool.WriteStringByFile(SavePath, content.ToString()); }
void CreatDataCSharpFile(string dataName,DataTable data) { string className = dataName + "Generate"; string content = ""; content += "using System;\n"; content += "using UnityEngine;\n\n"; content += @"//" + className + "类\n"; content += @"//该类自动生成请勿修改,以避免不必要的损失"; content += "\n"; content += "public class " + className + " : DataGenerateBase \n"; content += "{\n"; content += "\tpublic string m_key;\n"; //type List<string> type = new List<string>(data.m_tableTypes.Keys); if (type.Count > 0) { for (int i = 1; i < data.TableKeys.Count; i++) { string key = data.TableKeys[i]; string enumType = null; if (data.m_tableEnumTypes.ContainsKey(key)) { enumType = data.m_tableEnumTypes[key]; } string note = ";"; if (data.m_noteValue.ContainsKey(key)) { note = @"; //" + data.m_noteValue[key]; } content +="\t"; if (data.m_tableTypes.ContainsKey(key)) { //访问类型 + 字段类型 + 字段名 content += "public " + OutPutFieldName(data.m_tableTypes[key], enumType) + " m_" + key + note; } //默认字符类型 else { //访问类型 + 字符串类型 + 字段名 content += "public " + "string" + " m_" + key + note; } content += "\n"; } } content += "\n"; content += "\tpublic override void LoadData(string key) \n"; content += "\t{\n"; content += "\t\tDataTable table = DataManager.GetData(\"" + dataName + "\");\n\n"; content += "\t\tif (!table.ContainsKey(key))\n"; content += "\t\t{\n"; content += "\t\t\tthrow new Exception(\"" + className + " LoadData Exception Not Fond key ->\" + key + \"<-\");\n"; content += "\t\t}\n"; content += "\n"; content += "\t\tSingleData data = table[key];\n\n"; content += "\t\tm_key = key;\n"; if (type.Count > 0) { for (int i = 1; i < data.TableKeys.Count; i++) { string key = data.TableKeys[i]; content += "\t\t"; string enumType = null; if (data.m_tableEnumTypes.ContainsKey(key)) { enumType = data.m_tableEnumTypes[key]; } if (data.m_tableTypes.ContainsKey(key)) { content += "m_" + key + " = data." + OutPutFieldFunction(data.m_tableTypes[key], enumType) + "(\"" + key + "\")"; } //默认字符类型 else { content += "m_" + key + " = data." + OutPutFieldFunction(data.m_tableTypes[key], enumType) + "(\"" + key + "\")"; } content += ";\n"; } } content += "\t}\n"; content += "}\n"; string SavePath = Application.dataPath + "/Script/DataClassGenerate/" + className + ".cs"; ResourceIOTool.WriteStringByFile(SavePath, content.ToString()); }