From f44f7df16e9f510c21aadee1d9f08e29a3bb415e Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 26 九月 2024 14:49:27 +0800
Subject: [PATCH] 0312 HttpWebRequest请求CDN资源改用UnityWebRequest
---
Assets/Editor/Tool/ConfigClassGenerate.cs | 718 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 377 insertions(+), 341 deletions(-)
diff --git a/Assets/Editor/Tool/ConfigClassGenerate.cs b/Assets/Editor/Tool/ConfigClassGenerate.cs
index 0efc865..049bdf0 100644
--- a/Assets/Editor/Tool/ConfigClassGenerate.cs
+++ b/Assets/Editor/Tool/ConfigClassGenerate.cs
@@ -1,341 +1,377 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEditor.ProjectWindowCallback;
-using UnityEngine;
-using UnityEditor;
-using System.IO;
-using System.Text;
-using System.Text.RegularExpressions;
-using System;
-using UnityEngine.Events;
-
-public class CreateConfigClassFile
-{
-
- const string retract1 = "\t";
- const string retract2 = "\t\t";
- const string retract3 = "\t\t\t";
- const string retract4 = "\t\t\t\t";
- const string retract5 = "\t\t\t\t\t";
-
- public static event UnityAction FileCreateEvent;
-
- public static string filedContent = string.Empty;
- public static string readContent = string.Empty;
-
-
- [UnityEditor.MenuItem("Assets/鐢熸垚閰嶇疆瑙f瀽绫诲瀷")]
- public static void GenerateConfigClass()
- {
-
- if (Selection.objects != null)
- {
- foreach (var o in Selection.objects)
- {
- var path = AssetDatabase.GetAssetPath(o.GetInstanceID());
- if (path.EndsWith(".txt") || path.EndsWith(".TXT"))
- {
- CreateConfigClass(new FileInfo(path));
- }
- }
-
- AssetDatabase.Refresh();
- }
- }
-
- public static void CreateConfigClass(FileInfo fileInfo, bool isIL = false)
- {
- var lines = File.ReadAllLines(fileInfo.FullName);
- if (lines.Length > 2)
- {
- var typeLine = lines[0];
- var fieldLine = lines[1];
- var types = typeLine.Split('\t');
- var fields = fieldLine.Split('\t');
- var min = Mathf.Min(types.Length, fields.Length);
- var fieldFulls = new List<string>();
- var readFulls = new List<string>();
-
- int index = 0;
- for (int j = 0; j < min; j++)
- {
- var type = types[j];
- var field = fields[j];
- var fieldstring = GetField(type, field);
- var readString = GetRead(type, field, index);
- if (!string.IsNullOrEmpty(fieldstring))
- {
- fieldFulls.Add(fieldstring);
- }
-
- if (!string.IsNullOrEmpty(readString))
- {
- index++;
- readFulls.Add(readString);
- }
- }
-
- filedContent = string.Join("\r\n\t", fieldFulls.ToArray());
- readContent = string.Join("\r\n\r\n\t\t\t", readFulls.ToArray());
- CreatNewConfigClass(fileInfo.Name.Substring(0, fileInfo.Name.IndexOf('.')), isIL);
- }
-
- }
-
- public static string GetField(string type, string field)
- {
- field = field.Replace(" ", "");
- if (type.Contains("int[]"))
- {
- return StringUtility.Contact("public readonly int[] ", field.Trim(), ";");
- }
- else if (type.Contains("Int2[]"))
- {
- return StringUtility.Contact("public readonly Int2[] ", field.Trim(), ";");
- }
- else if (type.Contains("Int3[]"))
- {
- return StringUtility.Contact("public readonly Int3[] ", field.Trim(), ";");
- }
- else if (type.Contains("float[]"))
- {
- return StringUtility.Contact("public readonly float[] ", field.Trim(), ";");
- }
- else if (type.Contains("string[]"))
- {
- return StringUtility.Contact("public readonly string[] ", field.Trim(), ";");
- }
- else if (type.Contains("Vector3[]"))
- {
- return StringUtility.Contact("public readonly Vector3[] ", field.Trim(), ";");
- }
- else if (type.Contains("int"))
- {
- return StringUtility.Contact("public readonly int ", field.Trim(), ";");
- }
- else if (type.Contains("long"))
- {
- return StringUtility.Contact("public readonly long ", field.Trim(), ";");
- }
- else if (type.Contains("float"))
- {
- return StringUtility.Contact("public readonly float ", field.Trim(), ";");
- }
- else if (type.Contains("string"))
- {
- return StringUtility.Contact("public readonly string ", field, ";");
- }
- else if (type.Contains("Vector3"))
- {
- return StringUtility.Contact("public readonly Vector3 ", field.Trim(), ";");
- }
- else if (type.Contains("bool"))
- {
- return StringUtility.Contact("public readonly bool ", field.Trim(), ";");
- }
- else if (type.Contains("Int2"))
- {
- return StringUtility.Contact("public readonly Int2 ", field.Trim(), ";");
- }
- else if (type.Contains("Int3"))
- {
- return StringUtility.Contact("public readonly Int3 ", field.Trim(), ";");
- }
- else
- {
- return string.Empty;
- }
- }
-
- public static string GetRead(string type, string field, int index)
- {
- field = field.Replace(" ", "");
- if (type.Contains("int[]"))
- {
- var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
- var line2 = StringUtility.Contact(retract3, field, " = ", "new int", "[", field, "StringArray.Length]", ";", "\n");
- var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
- var line4 = StringUtility.Contact(retract3, "{\n");
- var line5 = StringUtility.Contact(retract4, " int.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
- var line6 = StringUtility.Contact(retract3, "}");
-
- return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
- }
- else if (type.Contains("Int2[]"))
- {
- var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
- var line2 = StringUtility.Contact(retract3, field, " = ", "new Int2", "[", field, "StringArray.Length]", ";", "\n");
- var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
- var line4 = StringUtility.Contact(retract3, "{\n");
- var line5 = StringUtility.Contact(retract4, " Int2.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
- var line6 = StringUtility.Contact(retract3, "}");
-
- return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
- }
- else if (type.Contains("Int3[]"))
- {
- var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
- var line2 = StringUtility.Contact(retract3, field, " = ", "new Int3", "[", field, "StringArray.Length]", ";", "\n");
- var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
- var line4 = StringUtility.Contact(retract3, "{\n");
- var line5 = StringUtility.Contact(retract4, " Int3.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
- var line6 = StringUtility.Contact(retract3, "}");
-
- return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
- }
- else if (type.Contains("float[]"))
- {
- var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
- var line2 = StringUtility.Contact(retract3, field, " = ", "new float", "[", field, "StringArray.Length", "]", ";", "\n");
- var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
- var line4 = StringUtility.Contact(retract3, "{\n");
- var line5 = StringUtility.Contact(retract4, " float.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
- var line6 = StringUtility.Contact(retract3, "}");
-
- return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
- }
- else if (type.Contains("string[]"))
- {
- var line1 = StringUtility.Contact(field, " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);");
- return line1;
- }
- else if (type.Contains("Vector3[]"))
- {
- var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
- var line2 = StringUtility.Contact(retract3, field, " = ", "new Vector3", "[", field, "StringArray.Length", "]", ";", "\n");
- var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
- var line4 = StringUtility.Contact(retract3, "{\n");
- var line5 = StringUtility.Contact(retract4, field, "[i]", "=", field, "StringArray", "[i]", ".Vector3Parse()", ";", "\n");
- var line6 = StringUtility.Contact(retract3, "}");
-
- return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
- }
- else if (type.Contains("int"))
- {
- return StringUtility.Contact("int.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
- }
- else if (type.Contains("long"))
- {
- return StringUtility.Contact("long.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
- }
- else if (type.Contains("float"))
- {
- return StringUtility.Contact("float.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
- }
- else if (type.Contains("string"))
- {
- return StringUtility.Contact(field, " = ", "tables", "[", index, "]", ";");
- }
- else if (type.Contains("Vector3"))
- {
- return StringUtility.Contact(field, "=", "tables", "[", index, "]", ".Vector3Parse()", ";");
- }
- else if (type.Contains("bool"))
- {
- var line1 = StringUtility.Contact("var ", field, "Temp", " = 0", ";", "\n");
- var line2 = StringUtility.Contact(retract3, "int.TryParse(tables", "[", index, "]", ",", "out ", field, "Temp", ")", "; ", "\n");
- var line3 = StringUtility.Contact(retract3, field, "=", field, "Temp", "!=0", ";");
- return StringUtility.Contact(line1, line2, line3);
- }
- else if (type.Contains("Int2"))
- {
- return StringUtility.Contact("Int2.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
- }
- else if (type.Contains("Int3"))
- {
- return StringUtility.Contact("Int3.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
- }
- else
- {
- return string.Empty;
- }
- }
-
- static string configClassPath = "Assets/Scripts/Core/GameEngine/Model/Config";
- static string configILClassPath = "LogicProject/Src/Config";
- static string templatePath = "Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt";
-
- public static void CreatNewConfigClass(string _name, bool isIL)
- {
- string newConfigPath;
- if (isIL)
- {
- newConfigPath = configILClassPath + string.Format("/IL{0}Config.cs", _name);
- }
- else
- {
- newConfigPath = configClassPath + string.Format("/{0}Config.cs", _name);
- }
- AssetDatabase.DeleteAsset(newConfigPath);
- UnityEngine.Object o = CreateScriptAssetFromTemplate(newConfigPath, templatePath, isIL);
- ProjectWindowUtil.ShowCreatedAsset(o);
- }
-
- internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile, bool isIL)
- {
- string fullPath = Path.GetFullPath(pathName);
-
- StreamReader streamReader = new StreamReader(resourceFile);
- string text = streamReader.ReadToEnd();
- streamReader.Close();
- string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
- text = Regex.Replace(text, "#ClassName*#", fileNameWithoutExtension);
- text = Regex.Replace(text, "#DateTime#", System.DateTime.Now.ToLongDateString());
- text = Regex.Replace(text, "#Field#", CreateConfigClassFile.filedContent);
- text = Regex.Replace(text, "#Read#", CreateConfigClassFile.readContent);
- if (isIL)
- {
- text = Regex.Replace(text, "#FileName#", fileNameWithoutExtension.Substring(2, fileNameWithoutExtension.Length - 8));
- }
- else
- {
- text = Regex.Replace(text, "#FileName#", fileNameWithoutExtension.Substring(0, fileNameWithoutExtension.Length - 6));
- }
-
- bool encoderShouldEmitUTF8Identifier = true;
- bool throwOnInvalidBytes = false;
- UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
- bool append = false;
- StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);
- streamWriter.Write(text);
- streamWriter.Close();
- AssetDatabase.ImportAsset(pathName);
- return AssetDatabase.LoadAssetAtPath(pathName, typeof(UnityEngine.Object));
- }
-
- internal static void AddConfigInit(string pathName)
- {
- string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
- string add1 = string.Format("{0}.Init();taskCount++;", fileNameWithoutExtension);
- string add2 = string.Format("completeCount += {0}.inited ? 1 : 0;", fileNameWithoutExtension);
-
- string path = Application.dataPath + "/Scripts/Utility/ConfigInitiator.cs";
- var text = File.ReadAllText(path);
-
- if (!text.Contains(add1))
- {
- text = text.Replace("//鍒濆鍖栫粨鏉焅r\n", add1 + "\r\n" + "\t\t//鍒濆鍖栫粨鏉焅r\n");
- }
- else
- {
- Debug.Log(fileNameWithoutExtension);
- }
-
- if (!text.Contains(add2))
- {
- text = text.Replace("//缁熻閰嶇疆琛ㄨВ鏋愯繘搴r\n", add2 + "\r\n" + "\t\t//缁熻閰嶇疆琛ㄨВ鏋愯繘搴r\n");
- }
-
- bool encoderShouldEmitUTF8Identifier = true;
- bool throwOnInvalidBytes = false;
- UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
- bool append = false;
- StreamWriter streamWriter = new StreamWriter(path, append, encoding);
- streamWriter.Write(text);
- streamWriter.Close();
- AssetDatabase.ImportAsset(path);
-
- }
-}
-
-
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEditor.ProjectWindowCallback;
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using System.Text;
+using System.Text.RegularExpressions;
+using System;
+using UnityEngine.Events;
+
+public class CreateConfigClassFile
+{
+
+ const string retract1 = "\t";
+ const string retract2 = "\t\t";
+ const string retract3 = "\t\t\t";
+ const string retract4 = "\t\t\t\t";
+ const string retract5 = "\t\t\t\t\t";
+
+ public static event UnityAction FileCreateEvent;
+
+ public static string filedContent = string.Empty;
+ public static string readContent = string.Empty;
+
+
+ [UnityEditor.MenuItem("Assets/鐢熸垚閰嶇疆瑙f瀽绫诲瀷1")]
+ public static void GenerateConfigClass1()
+ {
+
+ if (Selection.objects != null)
+ {
+ foreach (var o in Selection.objects)
+ {
+ var path = AssetDatabase.GetAssetPath(o.GetInstanceID());
+ if (path.EndsWith(".txt") || path.EndsWith(".TXT"))
+ {
+ CreateConfigClass(new FileInfo(path));
+ }
+ }
+
+ AssetDatabase.Refresh();
+ }
+ }
+
+ public static void CreateConfigClass(FileInfo fileInfo, bool isIL = false)
+ {
+ var lines = File.ReadAllLines(fileInfo.FullName);
+ if (lines.Length > 2)
+ {
+ var typeLine = lines[0];
+ var fieldLine = lines[1];
+ var types = typeLine.Split('\t');
+ var fields = fieldLine.Split('\t');
+ var min = Mathf.Min(types.Length, fields.Length);
+ var fieldFulls = new List<string>();
+ var readFulls = new List<string>();
+
+ int index = 0;
+ for (int j = 0; j < min; j++)
+ {
+ var type = types[j];
+ var field = fields[j];
+ var fieldstring = GetField(type, field);
+ var readString = GetRead(type, field, index);
+ if (!string.IsNullOrEmpty(fieldstring))
+ {
+ fieldFulls.Add(fieldstring);
+ }
+
+ if (!string.IsNullOrEmpty(readString))
+ {
+ index++;
+ readFulls.Add(readString);
+ }
+ }
+
+ filedContent = string.Join("\r\n\t", fieldFulls.ToArray());
+ readContent = string.Join("\r\n\r\n\t\t\t", readFulls.ToArray());
+ CreatNewConfigClass(fileInfo.Name.Substring(0, fileInfo.Name.IndexOf('.')), isIL);
+ }
+
+ }
+
+ public static string GetField(string type, string field)
+ {
+ field = field.Replace(" ", "");
+ if (type.Contains("int[][]"))
+ {
+ return StringUtility.Contact("public readonly int[][] ", field.Trim(), ";");
+ }
+ else if (type.Contains("float[][]"))
+ {
+ return StringUtility.Contact("public readonly float[][] ", field.Trim(), ";");
+ }
+ else if (type.Contains("int[]"))
+ {
+ return StringUtility.Contact("public readonly int[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("Int2[]"))
+ {
+ return StringUtility.Contact("public readonly Int2[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("Int3[]"))
+ {
+ return StringUtility.Contact("public readonly Int3[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("float[]"))
+ {
+ return StringUtility.Contact("public readonly float[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("string[]"))
+ {
+ return StringUtility.Contact("public readonly string[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("Vector3[]"))
+ {
+ return StringUtility.Contact("public readonly Vector3[] ", field.Trim(), ";");
+ }
+ else if (type.Contains("int"))
+ {
+ return StringUtility.Contact("public readonly int ", field.Trim(), ";");
+ }
+ else if (type.Contains("long"))
+ {
+ return StringUtility.Contact("public readonly long ", field.Trim(), ";");
+ }
+ else if (type.Contains("float"))
+ {
+ return StringUtility.Contact("public readonly float ", field.Trim(), ";");
+ }
+ else if (type.Contains("string"))
+ {
+ return StringUtility.Contact("public readonly string ", field, ";");
+ }
+ else if (type.Contains("Vector3"))
+ {
+ return StringUtility.Contact("public readonly Vector3 ", field.Trim(), ";");
+ }
+ else if (type.Contains("bool"))
+ {
+ return StringUtility.Contact("public readonly bool ", field.Trim(), ";");
+ }
+ else if (type.Contains("Int2"))
+ {
+ return StringUtility.Contact("public readonly Int2 ", field.Trim(), ";");
+ }
+ else if (type.Contains("Int3"))
+ {
+ return StringUtility.Contact("public readonly Int3 ", field.Trim(), ";");
+ }
+ else
+ {
+ return string.Empty;
+ }
+ }
+
+ public static string GetRead(string type, string field, int index)
+ {
+ field = field.Replace(" ", "");
+ if (type.Contains("int[][]"))
+ {
+ return StringUtility.Contact(field, " = JsonMapper.ToObject<int[][]>(tables", "[", index, "].Replace(\"(\", \"[\").Replace(\")\", \"]\")); ");
+ }
+ else if (type.Contains("float[][]"))
+ {
+ return StringUtility.Contact(field, " = JsonMapper.ToObject<float[][]>(tables", "[", index, "].Replace(\"(\", \"[\").Replace(\")\", \"]\")); ");
+ }
+ else if (type.Contains("int[]"))
+ {
+ var line0 = StringUtility.Contact("if (tables", "[", index, "].Contains(\"[\"))\n");
+ var line0_1 = StringUtility.Contact(retract3, "{\n");
+ var line0_2 = StringUtility.Contact(retract4, field, " = JsonMapper.ToObject<int[]>(tables", "[", index, "]);\n");
+ var line0_3 = StringUtility.Contact(retract3, "}\n");
+ var line0_4 = StringUtility.Contact(retract3, "else\n");
+ var line0_5 = StringUtility.Contact(retract3, "{\n");
+ var line1 = StringUtility.Contact(retract4, "string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
+ var line2 = StringUtility.Contact(retract4, field, " = ", "new int", "[", field, "StringArray.Length]", ";", "\n");
+ var line3 = StringUtility.Contact(retract4, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
+ var line4 = StringUtility.Contact(retract4, "{\n");
+ var line5 = StringUtility.Contact(retract5, " int.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
+ var line6 = StringUtility.Contact(retract4, "}\n");
+ var line0_6 = StringUtility.Contact(retract3, "}");
+
+ return StringUtility.Contact(line0, line0_1, line0_2, line0_3, line0_4, line0_5, line1, line2, line3, line4, line5, line6, line0_6);
+ }
+ else if (type.Contains("Int2[]"))
+ {
+ var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
+ var line2 = StringUtility.Contact(retract3, field, " = ", "new Int2", "[", field, "StringArray.Length]", ";", "\n");
+ var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
+ var line4 = StringUtility.Contact(retract3, "{\n");
+ var line5 = StringUtility.Contact(retract4, " Int2.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
+ var line6 = StringUtility.Contact(retract3, "}");
+
+ return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
+ }
+ else if (type.Contains("Int3[]"))
+ {
+ var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
+ var line2 = StringUtility.Contact(retract3, field, " = ", "new Int3", "[", field, "StringArray.Length]", ";", "\n");
+ var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
+ var line4 = StringUtility.Contact(retract3, "{\n");
+ var line5 = StringUtility.Contact(retract4, " Int3.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
+ var line6 = StringUtility.Contact(retract3, "}");
+
+ return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
+ }
+ else if (type.Contains("float[]"))
+ {
+ var line0 = StringUtility.Contact("if (tables", "[", index, "].Contains(\"[\"))\n");
+ var line0_1 = StringUtility.Contact(retract3, "{\n");
+ var line0_2 = StringUtility.Contact(retract4, field, " = JsonMapper.ToObject<float[]>(tables", "[", index, "]);\n");
+ var line0_3 = StringUtility.Contact(retract3, "}\n");
+ var line0_4 = StringUtility.Contact(retract3, "else\n");
+ var line0_5 = StringUtility.Contact(retract3, "{\n");
+ var line1 = StringUtility.Contact(retract4, "string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
+ var line2 = StringUtility.Contact(retract4, field, " = ", "new float", "[", field, "StringArray.Length", "]", ";", "\n");
+ var line3 = StringUtility.Contact(retract4, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
+ var line4 = StringUtility.Contact(retract4, "{\n");
+ var line5 = StringUtility.Contact(retract5, " float.TryParse(", field, "StringArray", "[i]", ",", "out ", field, "[i]", ")", ";", "\n");
+ var line6 = StringUtility.Contact(retract4, "}\n");
+ var line0_6 = StringUtility.Contact(retract3, "}");
+
+ return StringUtility.Contact(line0, line0_1, line0_2, line0_3, line0_4, line0_5, line1, line2, line3, line4, line5, line6, line0_6);
+ }
+ else if (type.Contains("string[]"))
+ {
+ var line1 = StringUtility.Contact(field, " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);");
+ return line1;
+ }
+ else if (type.Contains("Vector3[]"))
+ {
+ var line1 = StringUtility.Contact("string[] ", field, "StringArray", " = ", "tables", "[", index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n");
+ var line2 = StringUtility.Contact(retract3, field, " = ", "new Vector3", "[", field, "StringArray.Length", "]", ";", "\n");
+ var line3 = StringUtility.Contact(retract3, "for (int i=0;i<", field, "StringArray", ".Length", ";", "i++", ")", "\n");
+ var line4 = StringUtility.Contact(retract3, "{\n");
+ var line5 = StringUtility.Contact(retract4, field, "[i]", "=", field, "StringArray", "[i]", ".Vector3Parse()", ";", "\n");
+ var line6 = StringUtility.Contact(retract3, "}");
+
+ return StringUtility.Contact(line1, line2, line3, line4, line5, line6);
+ }
+ else if (type.Contains("int"))
+ {
+ return StringUtility.Contact("int.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
+ }
+ else if (type.Contains("long"))
+ {
+ return StringUtility.Contact("long.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
+ }
+ else if (type.Contains("float"))
+ {
+ return StringUtility.Contact("float.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
+ }
+ else if (type.Contains("string"))
+ {
+ return StringUtility.Contact(field, " = ", "tables", "[", index, "]", ";");
+ }
+ else if (type.Contains("Vector3"))
+ {
+ return StringUtility.Contact(field, "=", "tables", "[", index, "]", ".Vector3Parse()", ";");
+ }
+ else if (type.Contains("bool"))
+ {
+ var line1 = StringUtility.Contact("var ", field, "Temp", " = 0", ";", "\n");
+ var line2 = StringUtility.Contact(retract3, "int.TryParse(tables", "[", index, "]", ",", "out ", field, "Temp", ")", "; ", "\n");
+ var line3 = StringUtility.Contact(retract3, field, "=", field, "Temp", "!=0", ";");
+ return StringUtility.Contact(line1, line2, line3);
+ }
+ else if (type.Contains("Int2"))
+ {
+ return StringUtility.Contact("Int2.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
+ }
+ else if (type.Contains("Int3"))
+ {
+ return StringUtility.Contact("Int3.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; ");
+ }
+ else
+ {
+ return string.Empty;
+ }
+ }
+
+ static string configClassPath = "Assets/Scripts/Core/GameEngine/Model/Config";
+ static string configILClassPath = "Assets/Scripts/LogicProject/Config";
+ static string templatePath = "Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt";
+
+ public static void CreatNewConfigClass(string _name, bool isIL)
+ {
+ string newConfigPath;
+ newConfigPath = configILClassPath + string.Format("/IL{0}Config.cs", _name);
+ if (File.Exists(newConfigPath))
+ {
+ //榛樿鍏煎鏃х殑ILRuntime琛紝濡傛灉瑕佺敓鎴愭柊鐨勫厛鍒犻櫎鏃х殑琛ㄤ唬鐮�
+ isIL = true;
+ }
+ if (isIL)
+ {
+ newConfigPath = configILClassPath + string.Format("/IL{0}Config.cs", _name);
+ }
+ else
+ {
+ newConfigPath = configClassPath + string.Format("/{0}Config.cs", _name);
+ }
+ AssetDatabase.DeleteAsset(newConfigPath);
+ UnityEngine.Object o = CreateScriptAssetFromTemplate(newConfigPath, templatePath, isIL);
+ ProjectWindowUtil.ShowCreatedAsset(o);
+ }
+
+ internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile, bool isIL)
+ {
+ string fullPath = Path.GetFullPath(pathName);
+
+ StreamReader streamReader = new StreamReader(resourceFile);
+ string text = streamReader.ReadToEnd();
+ streamReader.Close();
+ string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
+ text = Regex.Replace(text, "#ClassName*#", fileNameWithoutExtension);
+ text = Regex.Replace(text, "#DateTime#", System.DateTime.Now.ToLongDateString());
+ text = Regex.Replace(text, "#Field#", CreateConfigClassFile.filedContent);
+ text = Regex.Replace(text, "#Read#", CreateConfigClassFile.readContent);
+ if (isIL)
+ {
+ text = Regex.Replace(text, "#FileName#", fileNameWithoutExtension.Substring(2, fileNameWithoutExtension.Length - 8));
+ }
+ else
+ {
+ text = Regex.Replace(text, "#FileName#", fileNameWithoutExtension.Substring(0, fileNameWithoutExtension.Length - 6));
+ }
+
+ bool encoderShouldEmitUTF8Identifier = true;
+ bool throwOnInvalidBytes = false;
+ UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
+ bool append = false;
+ StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);
+ streamWriter.Write(text);
+ streamWriter.Close();
+ AssetDatabase.ImportAsset(pathName);
+ return AssetDatabase.LoadAssetAtPath(pathName, typeof(UnityEngine.Object));
+ }
+
+ internal static void AddConfigInit(string pathName)
+ {
+ string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName);
+ string add1 = string.Format("{0}.Init();taskCount++;", fileNameWithoutExtension);
+ string add2 = string.Format("completeCount += {0}.inited ? 1 : 0;", fileNameWithoutExtension);
+
+ string path = Application.dataPath + "/Scripts/Utility/ConfigInitiator.cs";
+ var text = File.ReadAllText(path);
+
+ if (!text.Contains(add1))
+ {
+ text = text.Replace("//鍒濆鍖栫粨鏉焅r\n", add1 + "\r\n" + "\t\t//鍒濆鍖栫粨鏉焅r\n");
+ }
+ else
+ {
+ Debug.Log(fileNameWithoutExtension);
+ }
+
+ if (!text.Contains(add2))
+ {
+ text = text.Replace("//缁熻閰嶇疆琛ㄨВ鏋愯繘搴r\n", add2 + "\r\n" + "\t\t//缁熻閰嶇疆琛ㄨВ鏋愯繘搴r\n");
+ }
+
+ bool encoderShouldEmitUTF8Identifier = true;
+ bool throwOnInvalidBytes = false;
+ UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
+ bool append = false;
+ StreamWriter streamWriter = new StreamWriter(path, append, encoding);
+ streamWriter.Write(text);
+ streamWriter.Close();
+ AssetDatabase.ImportAsset(path);
+
+ }
+}
+
+
--
Gitblit v1.8.0