using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO; using System.Text; public class LuaConfigFunctionGenerate { [MenuItem("Assets/生成配置表Lua读取接口")] public static void InsertConfigInterface() { var csfilePath = Application.dataPath + "/Scripts/Lua/LuaConfigUtility.cs"; var content = File.ReadAllText(csfilePath); var fileName = string.Empty; foreach (var obj in Selection.objects) { if (obj is UnityEngine.Object) { var path = AssetDatabase.GetAssetPath(obj); if (path.EndsWith("txt") || path.EndsWith("TXT")) { fileName = Path.GetFileNameWithoutExtension(path); var newContent = MakeConfigInterface(fileName); if (!content.Contains(newContent)) { content = content.Replace("//这里插入配置表获取方法", StringUtility.Contact("//这里插入配置表获取方法\r\n", MakeConfigInterface(fileName))); } } } } var encoderShouldEmitUTF8Identifier = true; var throwOnInvalidBytes = false; var encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes); var append = false; var streamWriter = new StreamWriter(csfilePath, append, encoding); streamWriter.Write(content); streamWriter.Close(); AssetDatabase.ImportAsset(csfilePath); } public static string MakeConfigInterface(string _configName) { var temp = "\tpublic static " + _configName + "Config" + " Get" + _configName + "(string _key)\r\n" + "\t{\r\n" + "\t\treturn Config.Instance.Get<" + _configName + "Config" + ">(_key);\r\n" + "\t}" + "\r\n"; return temp; } }