少年修仙传客户端基础资源
client_Wu Xijin
2019-01-16 d53a782e2fd91ffc47dad0dd5a080ee451a351b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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;
    }
 
}