// *********************************************************************** // Assembly : Unity // Author : Kimch // Created : // // Last Modified By : Kimch // Last Modified On : // *********************************************************************** // // // *********************************************************************** using System; using System.Diagnostics; using System.IO; using UnityEditor; public class BuildProtocol { #region Const private const string BAT_FILE = @"../../common/protocol/clientprotogen.bat"; #endregion [MenuItem("Game/生成协议类")] public static void BuildAndCopy() { Build(); Copy(); } private static void Build() { try { var batFile = new FileInfo(BAT_FILE); var process = new Process(); process.StartInfo.CreateNoWindow = false; process.StartInfo.FileName = batFile.FullName; process.StartInfo.WorkingDirectory = batFile.Directory.FullName; process.Start(); process.WaitForExit(); } catch (Exception ex) { UnityEngine.Debug.Log(string.Format("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString())); } } private static void Copy() { var batFile = new FileInfo(BAT_FILE); var src = Path.Combine(batFile.Directory.FullName, "csproto"); var dst = "Assets/Ryff/Scripts/Protocol"; var srcFiles = Directory.GetFiles(src, "*.cs"); foreach (var srcFile in srcFiles) { var fileName = Path.GetFileName(srcFile); File.Copy(srcFile, Path.Combine(dst, fileName), true); } } }