Assets/Art
@@ -1 +1 @@ Subproject commit 8d2b2a8e8f55c649f60fa49c29d69aa954ffd65b Subproject commit fe3619659ba6852500e7108e172a7d1a6890f43f Assets/Editor/Actor/ActorEditor.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic; using UnityEditor; using UnityEditor.Animations; using TableConfig; using System; public class ActorEditor : EditorWindow @@ -19,7 +19,7 @@ [MenuItem("程序/角色相关/卸载NPC动画状态机")] static void RemoveAnimator() { var _dict = Config.Instance.GetAllValues<NPCConfig>(); var _dict = NPCConfig.GetValues(); int i = 0; foreach (var _model in _dict) { @@ -75,7 +75,7 @@ private void OnEnable() { Config.Instance.SyncLoadConfigs(); ConfigInitiator.EditorLoad(); m_NpcResBuilder = new NpcResourcesBuilder(); m_ModelResBuilder = new ModelResourcesBuilder(); } @@ -135,7 +135,7 @@ if (GUILayout.Button("所有翅膀", GUILayout.Height(24))) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { if (_item.Type == (int)E_ModelResType.Wing) @@ -148,7 +148,7 @@ if (GUILayout.Button("所有武器", GUILayout.Height(24))) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { if (_item.Type == (int)E_ModelResType.Weapon) @@ -161,7 +161,7 @@ if (GUILayout.Button("所有副手", GUILayout.Height(24))) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { if (_item.Type == (int)E_ModelResType.Secondary) @@ -174,7 +174,7 @@ if (GUILayout.Button("所有衣服", GUILayout.Height(24))) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { if (_item.Type == (int)E_ModelResType.Suit) @@ -187,7 +187,7 @@ if (GUILayout.Button("所有坐骑", GUILayout.Height(24))) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { if (_item.Type == (int)E_ModelResType.Horse) @@ -202,7 +202,7 @@ bool _result = EditorUtility.DisplayDialog("温馨提醒", "生成所有换装资源将会耗费比较长的时间, 请记得几点, 是否是需要生成所有的资源, 如果不是, 记得可以去掉不生成的资源,是不是不需要生成已经存在的资源, 如果不需要, 记得勾选[只生成不存在的]", "确认生成", "我按错了"); if (_result) { var _dict = Config.Instance.GetAllValues<ModelResConfig>(); var _dict = ModelResConfig.GetValues(); foreach (var _item in _dict) { m_ModelResBuilder.BuildModelRes(_item.ID, m_HighMesh); Assets/Editor/Actor/ModelResourcesBuilder.cs
@@ -1,4 +1,4 @@ using TableConfig; using UnityEngine; using UnityEditor; @@ -6,7 +6,7 @@ { public void BuildModelRes(int id, bool isHighMesh = false) { ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id); ModelResConfig _modelRes = ModelResConfig.Get(id); if (_modelRes == null) { Debug.LogWarningFormat("要生成的ModelRes资源id: {0} 并不存在于配置表中, 请确认是否填写有错.", id); @@ -78,7 +78,7 @@ return; } ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id); ModelResConfig _modelRes = ModelResConfig.Get(id); string _path = _modelRes.ResourcesName; string _resName = _modelRes.ResourcesName; if (_path.IndexOf('/') != -1) @@ -123,7 +123,7 @@ return; } ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id); ModelResConfig _modelRes = ModelResConfig.Get(id); string _path = _modelRes.ResourcesName; if (_path.IndexOf('/') != -1) { @@ -140,7 +140,7 @@ return; } ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id); ModelResConfig _modelRes = ModelResConfig.Get(id); string _path = _modelRes.ResourcesName; if (_path.IndexOf('/') != -1) { Assets/Editor/Actor/NpcResourcesBuilder.cs
@@ -1,6 +1,6 @@ using UnityEngine; using UnityEditor; using TableConfig; using System.Collections.Generic; public class NpcResourcesBuilder : ResourcesBuilder @@ -15,7 +15,7 @@ BuildAnimationClip1(modelName); BuildAnimatorController(modelName, outName, type); var showConfigs = Config.Instance.GetAllValues<ActorShowConfig>(); var showConfigs = ActorShowConfig.GetValues(); NPCConfig _npcModel = null; foreach (var _item in showConfigs) { @@ -25,7 +25,7 @@ { continue; } _npcModel = Config.Instance.Get<NPCConfig>(_item.showNpcs[i]); _npcModel = NPCConfig.Get(_item.showNpcs[i]); if (_npcModel == null) { continue; @@ -39,10 +39,10 @@ } } var realmConfigs = Config.Instance.GetAllValues<RealmConfig>(); var realmConfigs = RealmConfig.GetValues(); foreach (var _realmConfig in realmConfigs) { _npcModel = Config.Instance.Get<NPCConfig>(_realmConfig.BossID); _npcModel = NPCConfig.Get(_realmConfig.BossID); if (_npcModel == null) { continue; Assets/Editor/Logo/lxj_android/Launch_1.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: a752b5b922fec0a41aa168d36d58a301 guid: a130bf4f92acdc94bb1648a638ca0665 timeCreated: 1539845134 licenseType: Free TextureImporter: Assets/Editor/Logo/taptap.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: bf1f28310450d1a47a24a0a2257b01bb folderAsset: yes timeCreated: 1547689614 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/Logo/taptap/Icon.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: ca863e6c93f902848bd2ca58436ea6fa guid: 98006ca0a2e85a84c85dd6b83fea0f3c timeCreated: 1521082299 licenseType: Pro TextureImporter: Assets/Editor/Logo/taptap/Launch_1.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: a752b5b922fec0a41aa168d36d58a301 guid: 7ef4d686c0c61f245b22948330f60977 timeCreated: 1539845134 licenseType: Free TextureImporter: Assets/Editor/Logo/taptap/SplashImage.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: e99f2730749ab0f4287df1aa1c858571 guid: eecb5a4a256afb141853738371bb60f8 timeCreated: 1520997354 licenseType: Pro TextureImporter: Assets/Editor/Logo/taptap/TB_DL_Logo.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: be6affd60e5eea74dbf7323f5224e343 guid: f45a781a0f3cced4fb4a35f382375523 timeCreated: 1530257245 licenseType: Pro TextureImporter: Assets/Editor/Logo/xiaomi.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 7e804c4fb6d99a0428d4e9081242b570 folderAsset: yes timeCreated: 1550022188 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/Logo/xjaz_zwx.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 6ea67ba392c12344089f59def5f8285a folderAsset: yes timeCreated: 1546133551 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/Logo/xjaz_zwx/Icon.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: 21826404ab461b84ba30618689546f57 guid: 3cb031cfcc04fb444991501b19e38786 timeCreated: 1521082299 licenseType: Pro TextureImporter: Assets/Editor/Logo/xjaz_zwx/Launch_1.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: 477dea815e741ac4dad0aad4dfd5df46 guid: ac51684a0a75d574ca628e7da34a98eb timeCreated: 1535531960 licenseType: Free TextureImporter: Assets/Editor/Logo/xjaz_zwx/SplashImage.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: 0b7e1b8ad42bf914d986fd7e428ea300 guid: 46c77e16078669d4a95f6860cbb643f4 timeCreated: 1520997354 licenseType: Pro TextureImporter: Assets/Editor/Logo/xjaz_zwx/TB_DL_Logo.png.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: 22d3129e6346ee34ca5771b9fe3ed214 guid: d2dbe89d00dfc7243b76effa2f3d553d timeCreated: 1533883927 licenseType: Free TextureImporter: Assets/Editor/Logo/yilegame.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: b263547aa92e9214e84970d12575bb9a folderAsset: yes timeCreated: 1550022188 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/Logo/yilegame_ios.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: be6a70a47bdb1e443bff5e2d302dd379 folderAsset: yes timeCreated: 1547016885 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/Logo/yjgame.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: a610b24632a37ba44a366fb1bc9292d3 folderAsset: yes timeCreated: 1550022188 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
@@ -4,7 +4,7 @@ using UnityEditor; using Snxxz.UI; using UnityEngine.UI; using TableConfig; public class NewBieGuideEditorWindow : EditorWindow { @@ -451,10 +451,10 @@ void DrawNewbieGuides() { if (Config.Instance.inited && newbieGuides == null) if (ConfigInitiator.done && newbieGuides == null) { newbieGuides = new List<NewBieGuide>(); var guides = Config.Instance.GetAllValues<GuideConfig>(); var guides = GuideConfig.GetValues(); foreach (var config in guides) { if (config.Type == 1) @@ -507,10 +507,10 @@ void DrawFunctionalGuides() { if (Config.Instance.inited && functionalGuides == null) if (ConfigInitiator.done && functionalGuides == null) { functionalGuides = new List<FunctionalGuide>(); var guides = Config.Instance.GetAllValues<GuideConfig>(); var guides = GuideConfig.GetValues(); foreach (var config in guides) { if (config.Type == 2) Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt
@@ -1,35 +1,195 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: #DateTime# // [Author]: Fish // [ Date ]: #DateTime# //-------------------------------------------------------- using UnityEngine; using System.Collections.Generic; using System.IO; using System.Threading; using System; using UnityEngine; namespace TableConfig { public partial class #ClassName# { public partial class #ClassName# : ConfigBase { #Field# #Field# public #ClassName#() { } public override string getKey() public #ClassName#(string input) { try { return #PrimaryKey#.ToString(); var tables = input.Split('\t'); #Read# } catch (Exception ex) { DebugEx.Log(ex); } } static Dictionary<string, #ClassName#> configs = new Dictionary<string, #ClassName#>(); public static #ClassName# Get(string id) { if (!inited) { Debug.Log("#ClassName# 还未完成初始化。"); return null; } if (configs.ContainsKey(id)) { return configs[id]; } public override void Parse() { try #ClassName# config = null; if (rawDatas.ContainsKey(id)) { config = configs[id] = new #ClassName#(rawDatas[id]); rawDatas.Remove(id); } return config; } public static #ClassName# Get(int id) { return Get(id.ToString()); } public static List<string> GetKeys() { var keys = new List<string>(); keys.AddRange(configs.Keys); keys.AddRange(rawDatas.Keys); return keys; } public static List<#ClassName#> GetValues() { var values = new List<#ClassName#>(); values.AddRange(configs.Values); var keys = new List<string>(rawDatas.Keys); foreach (var key in keys) { values.Add(Get(key)); } return values; } public static bool Has(string id) { return configs.ContainsKey(id) || rawDatas.ContainsKey(id); } public static bool Has(int id) { return Has(id.ToString()); } public static bool inited { get; private set; } protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>(); public static void Init(bool sync=false) { inited = false; var path = string.Empty; if (AssetSource.refdataFromEditor) { path = ResourcesPath.CONFIG_FODLER +"/#FileName#.txt"; } else { path = AssetVersionUtility.GetAssetFilePath("config/#FileName#.txt"); } var tempConfig = new #ClassName#(); var preParse = tempConfig is IConfigPostProcess; if (sync) { var lines = File.ReadAllLines(path); if (!preParse) { #Read# rawDatas = new Dictionary<string, string>(lines.Length - 3); } catch (Exception ex) for (int i = 3; i < lines.Length; i++) { DebugEx.Log(ex); try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new #ClassName#(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } } } inited = true; } else { ThreadPool.QueueUserWorkItem((object _object) => { var lines = File.ReadAllLines(path); if (!preParse) { rawDatas = new Dictionary<string, string>(lines.Length - 3); } for (int i = 3; i < lines.Length; i++) { try { var line = lines[i]; var index = line.IndexOf("\t"); if (index == -1) { continue; } var id = line.Substring(0, index); if (preParse) { var config = new #ClassName#(line); configs[id] = config; (config as IConfigPostProcess).OnConfigParseCompleted(); } else { rawDatas[id] = line; } } catch (System.Exception ex) { Debug.LogError(ex); } } inited = true; }); } } } Assets/Editor/Tool/ClientPackage.cs
@@ -6,7 +6,7 @@ using System.IO; using System.Text.RegularExpressions; using System.Text; using TableConfig; using Beebyte.Obfuscator; public class ClientPackage @@ -169,7 +169,7 @@ if (halfPackages.Count > 0) { Config.Instance.LoadPriorBundleConfig(); PriorBundleConfig.Init(true); var fromFiles = new List<FileInfo>(); FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles); Assets/Editor/Tool/ConfigClassGenerate.cs
@@ -3,32 +3,51 @@ using UnityEditor.ProjectWindowCallback; using UnityEngine; using UnityEditor; using System; using System.IO; using System.Text; using System.Text.RegularExpressions; using System; using UnityEngine.Events; public class CreateConfigData public class CreateConfigClassFile { public static event Action fileCreateEvent; 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 string primaryKey = string.Empty; public static event UnityAction FileCreateEvent; public static string filedContent = string.Empty; public static string readContent = string.Empty; public static void CreateConfigClass(FileInfo fileInfo) [UnityEditor.MenuItem("Assets/生成配置解析类型")] public static void GenerateConfigClass() { //filedContent = string.Empty; //var obj = _obj; //var name = obj.name; //var assetPath = AssetDatabase.GetAssetPath(obj.GetInstanceID()); 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)); } } //var fullName = StringUtility.Contact(Directory.GetParent(Application.dataPath), "/", assetPath); AssetDatabase.Refresh(); } } public static void CreateConfigClass(FileInfo fileInfo) { var lines = File.ReadAllLines(fileInfo.FullName); if (lines.Length > 2) { if (lines.Length > 2) { var typeLine = lines[0]; var fieldLine = lines[1]; var types = typeLine.Split('\t'); @@ -36,121 +55,197 @@ var min = Mathf.Min(types.Length, fields.Length); var fieldFulls = new List<string>(); var readFulls = new List<string>(); primaryKey = fields[0]; int index = 0; for (int j = 0; j < min; j++) { 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)) { if (!string.IsNullOrEmpty(fieldstring)) { fieldFulls.Add(fieldstring); } if (!string.IsNullOrEmpty(readString)) { if (!string.IsNullOrEmpty(readString)) { index++; readFulls.Add(readString); } } filedContent = string.Join("\r\n\t\t", fieldFulls.ToArray()); readContent = string.Join("\r\n\t\t\t\r\n\t\t\t\t", readFulls.ToArray()); 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('.'))); } } public static string GetField(string _type, string _field) public static string GetField(string type, string field) { _field = _field.Replace(" ", ""); if (_type.Contains("int[]")) { return StringUtility.Contact("public int[] ", _field.Trim(), ";"); field = field.Replace(" ", ""); if (type.Contains("int[]")) { return StringUtility.Contact("public readonly int[] ", field.Trim(), ";"); } else if (_type.Contains("float[]")) { return StringUtility.Contact("public float[] ", _field.Trim(), ";"); else if (type.Contains("Int2[]")) { return StringUtility.Contact("public readonly Int2[] ", field.Trim(), ";"); } else if (_type.Contains("string[]")) { return StringUtility.Contact("public string[] ", _field.Trim(), ";"); else if (type.Contains("Int3[]")) { return StringUtility.Contact("public readonly Int3[] ", field.Trim(), ";"); } else if (_type.Contains("Vector3[]")) { return StringUtility.Contact("public Vector3[] ", _field.Trim(), ";"); else if (type.Contains("float[]")) { return StringUtility.Contact("public readonly float[] ", field.Trim(), ";"); } else if (_type.Contains("int")) { return StringUtility.Contact("public int ", _field.Trim(), " { get ; private set ; }"); else if (type.Contains("string[]")) { return StringUtility.Contact("public readonly string[] ", field.Trim(), ";"); } else if(_type.Contains("long")) { return StringUtility.Contact("public long ", _field.Trim(), " { get ; private set ; }"); else if (type.Contains("Vector3[]")) { return StringUtility.Contact("public readonly Vector3[] ", field.Trim(), ";"); } else if (_type.Contains("float")) { return StringUtility.Contact("public float ", _field.Trim(), " { get ; private set; } "); else if (type.Contains("int")) { return StringUtility.Contact("public readonly int ", field.Trim(), ";"); } else if (_type.Contains("string")) { return StringUtility.Contact("public string ", _field.Contains("[")? _field.Substring(0, _field.IndexOf("[")): _field, " { get ; private set; } "); else if (type.Contains("long")) { return StringUtility.Contact("public readonly long ", field.Trim(), ";"); } else if (_type.Contains("Vector3")) { return StringUtility.Contact("public Vector3 ", _field.Trim(), " { get ; private set; } "); else if (type.Contains("float")) { return StringUtility.Contact("public readonly float ", field.Trim(), ";"); } else { 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) public static string GetRead(string type, string field, int index) { _field = _field.Replace(" ", ""); if (_type.Contains("int[]")) { var line1 = StringUtility.Contact("string[] ", _field, "StringArray", " = ", "rawContents", "[", _index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n"); var line2 = StringUtility.Contact("\t\t\t\t", _field, " = ", "new int", "[", _field, "StringArray.Length]", ";", "\n"); var line3 = StringUtility.Contact("\t\t\t\t", "for (int i=0;i<", _field, "StringArray", ".Length", ";", "i++", ")", "\n"); var line4 = "\t\t\t\t{\n"; var line5 = StringUtility.Contact("\t\t\t\t\t", " int.TryParse(", _field, "StringArray", "[i]", ",", "out ", _field, "[i]", ")", ";", "\n"); var line6 = "\t\t\t\t}"; 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("float[]")) { var line1 = StringUtility.Contact("string[] ", _field, "StringArray", " = ", "rawContents", "[", _index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n"); var line2 = StringUtility.Contact("\t\t\t\t", _field, " = ", "new float", "[", _field, "StringArray.Length", "]", ";", "\n"); var line3 = StringUtility.Contact("\t\t\t\t", "for (int i=0;i<", _field, "StringArray", ".Length", ";", "i++", ")", "\n"); var line4 = "\t\t\t\t{\n"; var line5 = StringUtility.Contact("\t\t\t\t\t", " float.TryParse(", _field, "StringArray", "[i]", ",", "out ", _field, "[i]", ")", ";", "\n"); var line6 = "\t\t\t\t}"; 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("string[]")) { var line1 = StringUtility.Contact(_field, " = ", "rawContents", "[", _index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);"); 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", " = ", "rawContents", "[", _index, "]", ".Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);", "\n"); var line2 = StringUtility.Contact("\t\t\t\t", _field, " = ", "new Vector3", "[", _field, "StringArray.Length", "]", ";", "\n"); var line3 = StringUtility.Contact("\t\t\t\t", "for (int i=0;i<", _field, "StringArray", ".Length", ";", "i++", ")", "\n"); var line4 = "\t\t\t\t{\n"; var line5 = StringUtility.Contact("\t\t\t\t\t", _field, "[i]", "=", _field, "StringArray", "[i]", ".Vector3Parse()", ";", "\n"); var line6 = "\t\t\t\t}"; 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(_field, "=IsNumeric(rawContents[", _index, "]) ? ", "int.Parse(rawContents", "[", _index, "]", "):0", "; "); else if (type.Contains("int")) { return StringUtility.Contact("int.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; "); } else if (_type.Contains("float")) { return StringUtility.Contact(_field, "=IsNumeric(rawContents[", _index, "]) ? ", "float.Parse(rawContents", "[", _index, "]", "):0", "; "); else if (type.Contains("float")) { return StringUtility.Contact("float.TryParse(tables", "[", index, "]", ",", "out ", field, ")", "; "); } else if (_type.Contains("string")) { return StringUtility.Contact(_field.Contains("[") ? _field.Substring(0, _field.IndexOf("[")) : _field, " = ", "rawContents", "[", _index, "]", ".Trim()", ";"); else if (type.Contains("string")) { return StringUtility.Contact(field, " = ", "tables", "[", index, "]", ";"); } else if (_type.Contains("Vector3")) { return StringUtility.Contact(_field, "=", "rawContents", "[", _index, "]", ".Vector3Parse()", ";"); else if (type.Contains("Vector3")) { return StringUtility.Contact(field, "=", "tables", "[", index, "]", ".Vector3Parse()", ";"); } else { 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 templatePath = "Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt"; @@ -161,10 +256,6 @@ AssetDatabase.DeleteAsset(newConfigPath); UnityEngine.Object o = CreateScriptAssetFromTemplate(newConfigPath, templatePath); ProjectWindowUtil.ShowCreatedAsset(o); if (CreateConfigData.fileCreateEvent != null) { CreateConfigData.fileCreateEvent(); } } internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile) @@ -177,9 +268,9 @@ string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName); text = Regex.Replace(text, "#ClassName*#", fileNameWithoutExtension); text = Regex.Replace(text, "#DateTime#", System.DateTime.Now.ToLongDateString()); text = Regex.Replace(text, "#PrimaryKey#", CreateConfigData.primaryKey); text = Regex.Replace(text, "#Field#", CreateConfigData.filedContent); text = Regex.Replace(text, "#Read#", CreateConfigData.readContent); text = Regex.Replace(text, "#Field#", CreateConfigClassFile.filedContent); text = Regex.Replace(text, "#Read#", CreateConfigClassFile.readContent); text = Regex.Replace(text, "#FileName#", fileNameWithoutExtension.Substring(0, fileNameWithoutExtension.Length - 6)); bool encoderShouldEmitUTF8Identifier = true; bool throwOnInvalidBytes = false; @@ -191,6 +282,40 @@ 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); } } Assets/Editor/Tool/CrossServerEditorWindow.cs
@@ -7,7 +7,7 @@ using System.Net.Sockets; using System.Threading; using UnityEditor; using TableConfig; public class CrossServerTest : EditorWindow { @@ -134,7 +134,7 @@ } var mapId = PlayerDatas.Instance.baseData.MapID; var config = Config.Instance.Get<MapConfig>(mapId); var config = MapConfig.Get(mapId); if (config == null) { return; Assets/Editor/Tool/ExcelParseTool.cs
@@ -5,7 +5,7 @@ using System.Text; using System; using System.Text.RegularExpressions; using TableConfig; public class ExcelParseTool : EditorWindow { @@ -51,11 +51,11 @@ if (GUILayout.Button("解析")) { m_Englishs.Clear(); Config.Instance.SyncLoadConfigs(); ConfigInitiator.EditorLoad(); m_FitterKeys.Clear(); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<LanguageConfig>()); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<SysInfoConfig>()); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<IconConfig>()); m_FitterKeys.AddRange(LanguageConfig.GetKeys()); m_FitterKeys.AddRange(SysInfoConfig.GetKeys()); m_FitterKeys.AddRange(IconConfig.GetKeys()); FindEnglishLabel(); } @@ -84,11 +84,11 @@ { DebugEx.LogError(e.ToString()); } Config.Instance.SyncLoadConfigs(); ConfigInitiator.EditorLoad(); m_FitterKeys.Clear(); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<LanguageConfig>()); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<SysInfoConfig>()); m_FitterKeys.AddRange(Config.Instance.GetAllKeys<IconConfig>()); m_FitterKeys.AddRange(LanguageConfig.GetKeys()); m_FitterKeys.AddRange(SysInfoConfig.GetKeys()); m_FitterKeys.AddRange(IconConfig.GetKeys()); FindEnglishLabel(true); } } Assets/Editor/Tool/SpriteManageTool.cs
@@ -6,7 +6,7 @@ using System.Reflection; using System.Text; using System.Text.RegularExpressions; using TableConfig; using UnityEditor; using UnityEngine; using UnityEngine.UI; @@ -125,8 +125,8 @@ private void OnEnable() { Config.Instance.SyncLoadConfigs(); m_IconCfgs = Config.Instance.GetAllValues<IconConfig>(); ConfigInitiator.EditorLoad(); m_IconCfgs = IconConfig.GetValues(); m_DeleteTexture = EditorGUIUtility.FindTexture("TreeEditor.Trash"); InitStyle(); Assets/Editor/Tool/TableTool.cs
@@ -262,7 +262,7 @@ } FileStream fileStream = _tableNameLst[i].fileInfo.OpenRead(); StreamReader sr = new StreamReader(fileStream, Encoding.Default); CreateConfigData.CreateConfigClass(_tableNameLst[i].fileInfo); CreateConfigClassFile.CreateConfigClass(_tableNameLst[i].fileInfo); sr.Dispose(); sr.Close(); } Assets/ResourcesOut
@@ -1 +1 @@ Subproject commit fc8c1cd26a32d339cc975a36ffe87be8eac18fc2 Subproject commit 9942c53318c89f9d2339087321a9e81d3e90d59e Assets/Scripts
@@ -1 +1 @@ Subproject commit d5bf165ef28b530ed531aed097ad301278c5fcae Subproject commit 96ac92ee89919defe74e9a4bc981dbf328c8d476