添加自动生成配置文件工具

pull/1/head
zhangxl 2024-07-19 16:19:20 +08:00
parent c02482532a
commit c65b702403
2 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,108 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Text;
//using cfg;
using SimpleJSON;
using UnityEditor;
using UnityEngine;
using ZC;
using Debug = UnityEngine.Debug;
namespace ZEditor
{
/// <summary>
/// 配置文件工具(后面再完善把,暂时不想搞了)
/// </summary>
public class GenConfigCSEditor : Editor
{
[MenuItem("Tool/自动生成配置表和cs常量工具")]
public static void Gen()
{
Run();
string folderPath = @"Assets/DemoGame/GameRes/Config/JSON";
// // 获取文件夹下所有文件的完整路径
// string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories);
//
// Tables tables;
// // 输出文件路径
// foreach (string file in files)
// {
// if (file.Contains(".meta"))
// {
// continue;
// }
//
// tables = new cfg.Tables(JX);
// }
// string gameConfDir = @"Assets/DemoGame/GameRes/Config/JSON"; // 替换为gen.bat中outputDataDir指向的目录
// var tables = new cfg.Tables(file => JSON.Parse(File.ReadAllText($"{gameConfDir}/{file}.json")));
// StringBuilder sb = new StringBuilder();
// foreach (var item in tables.TbItem.DataMap)
// {
// string name = $"{item.Key}_{item.Value.Name}";
// sb.AppendLine($"public const int {name} = {item.Key};");
// }
}
static void Run()
{
// 指定批处理文件的路径
string pathToBatchFile = $"{Application.dataPath}".Replace("Assets", "Luban") + "/gen.bat";
Process process = new Process();
// 设置进程启动信息
process.StartInfo.FileName = pathToBatchFile;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
// 启动进程
process.Start();
// 读取输出(如果需要)
string output = process.StandardOutput.ReadToEnd();
string errors = process.StandardError.ReadToEnd();
// 等待进程结束
process.WaitForExit();
// 可以将输出或错误信息打印到Unity的控制台
UnityEngine.Debug.Log(output);
if (!string.IsNullOrEmpty(errors))
{
UnityEngine.Debug.LogError(errors);
}
}
private static JSONNode JX(string arg)
{
string path = String.Empty;
switch (arg)
{
case "item_tbitem":
path = AssetConst.Assets_DemoGame_GameRes_Config_JSON_item_tbitem_json;
break;
case "tbplayer":
path = AssetConst.Assets_DemoGame_GameRes_Config_JSON_tbplayer_json;
break;
default:
break;
}
var textAsset = ResourcesLocalComponent.Instance.LoadAssetSync<TextAsset>(path);
return JSON.Parse(textAsset.text);
}
// [MenuItem("Tool/运行场景")]
// public static void Run()
// {
// EditorApplication.isPlaying = true;
// }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9f815f01838f40a4b9be377d51589289
timeCreated: 1721372740