mergemilitary/Assets/Scripts/Editor/ExcelBuilder/DesignerTool.cs

89 lines
2.8 KiB
C#
Raw Normal View History

2022-06-08 13:23:44 +00:00
using System;
using System.IO;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
public class PathConfig
{
public static readonly string ExcelPath = Application.dataPath + "/Excels/";
public static readonly string ExcelName = "LevelConfig.xlsx";
public static readonly string DataConfigPath = "Assets/Resources/Config/";
public static readonly string DataConfigName = "LevelConfig";
}
public class DesignerTool : Editor
{
//转ScriptableObject
[MenuItem("策划工具/关卡导表")]
public static void CreateItemAsset() {
LevelConfig tLevelCfg = CreateInstance<LevelConfig>();
tLevelCfg.DataList = ExcelParser.CreateItemArrayWithExcel(PathConfig.ExcelPath + PathConfig.ExcelName);
if(!Directory.Exists(PathConfig.DataConfigPath))
{
Directory.CreateDirectory(PathConfig.DataConfigPath);
}
string tSavePath = string.Format("{0}{1}.asset", PathConfig.DataConfigPath, PathConfig.DataConfigName);
AssetDatabase.CreateAsset(tLevelCfg, tSavePath);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
[MenuItem("策划工具/运行游戏(手摆阵容)")]
public static void PlayGame1()
{
GameConfig.Instance.IsAutoLevel = false;
RealPlay();
}
[MenuItem("策划工具/运行游戏(召唤次数)")]
public static void PlayGame2()
{
GameConfig.Instance.IsAutoLevel = true;
RealPlay();
}
private static void RealPlay()
{
GameConfig.Instance.IsDebug = true;
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
{
EditorSceneManager.OpenScene("Assets/Scenes/Init.unity");
}
if (!EditorApplication.isPlaying)
{
EditorApplication.isPlaying = true;
}
}
//转Json
//[MenuItem("策划工具/关卡导Json")]
//public static void CreateExcelJson()
//{
// LevelConfig tLevelCfg = CreateInstance<LevelConfig>();
// tLevelCfg.DataList = ExcelParser.CreateItemArrayWithExcel(PathConfig.ExcelPath + PathConfig.ExcelName);
// string tFilePath = PathConfig.DataConfigPath + PathConfig.DataConfigName + ".json";
// FileInfo tFile = new FileInfo(tFilePath);
// StreamWriter tSW = tFile.CreateText();
// string tJson = JsonUtility.ToJson(tLevelCfg);
// Regex reg = new Regex(@"(?i)\\[uU]([0-9a-f]{4})");
// tJson = reg.Replace(tJson, delegate (Match m) { return ((char)Convert.ToInt32(m.Groups[1].Value, 16)).ToString(); });
// tSW.WriteLine(tJson);
// tSW.Close();
// tSW.Dispose();
// AssetDatabase.Refresh();
//}
}