89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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();
 | |
|     //}
 | |
| } |