TheInitialProject/Assets/Scripts/Editor/ProjectTool.cs
2024-10-23 16:59:02 +08:00

1186 lines
43 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CaoCao.LitJson;
using CaoCao.Resources;
using Game.HotFix;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Security.Policy;
using System.Text;
using UnityEditor;
using UnityEditor.SearchService;
using UnityEngine;
using UnityEngine.UI;
// 陈皓
public class ProjectTool
{
#if UNITY_EDITOR
///<summary>
/// 该函数设置由不同线程产生的窗口的显示状态
/// </summary>
/// <param name="hWnd">窗口句柄</param>
/// <param name="cmdShow">指定窗口如何显示。查看允许值列表请查阅ShowWlndow函数的说明部分</param>
/// <returns>如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零</returns>
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
/// <summary>
/// 该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。
/// 系统给创建前台窗口的线程分配的权限稍高于其他线程。
/// </summary>
/// <param name="hWnd">将被激活并被调入前台的窗口句柄</param>
/// <returns>如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零</returns>
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int SW_SHOWNOMAL = 1;
private static void HandleRunningInstance(System.Diagnostics.Process instance)
{
ShowWindowAsync(instance.MainWindowHandle, SW_SHOWNOMAL);//显示
SetForegroundWindow(instance.MainWindowHandle);//当到最前端
}
static string ProjectPath => System.Environment.CurrentDirectory;
static string AssetsPath => ProjectPath + "\\Assets\\";
static string BundlesPath => ProjectPath + "\\Bundles\\";
static string LubanToolsPath => ProjectPath + "\\LubanTools\\";
static string GameAssetsPath => AssetsPath + "GameAssets\\";
static string LubanToolsDesignerConfigsPath => LubanToolsPath + "DesignerConfigs\\";
[MenuItem("项目工具/配置生成/拷贝策划配置和生成(策划正式表目录)")]
static void CopyBuildCfg()
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = LubanToolsPath + "gen_code_bin_gf_ALL.bat";
proc.StartInfo.WorkingDirectory = LubanToolsPath;
proc.Start();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/配置生成/拷贝策划配置和生成(策划正式表目录 + 各渠道正式目录)")]
static void CopyBuildCfgWithChannel()
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = LubanToolsPath + "gen_code_bin_gf_ALL_WithChannel.bat";
proc.StartInfo.WorkingDirectory = LubanToolsPath;
proc.Start();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/配置生成/拷贝策划配置和生成(策划测试表目录1)")]
static void CopyTestBuildCfg1()
{
Debug.Log("策划测试表目录1");
string exepath = LubanToolsPath;
string SrcTestDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = LubanToolsPath + "gen_code_bin_test_fenqu1.bat";
//proc.StartInfo.Arguments = string.Format("10");//this is argument
//proc.StartInfo.UseShellExecute = false;//运行时隐藏dos窗口
//proc.StartInfo.CreateNoWindow = false;//运行时隐藏dos窗口
proc.StartInfo.WorkingDirectory = LubanToolsPath;
//proc.StartInfo.Verb = "runas";//设置该启动动作,会以管理员权限运行进程
proc.Start();
//proc.WaitForExit();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/配置生成/拷贝策划配置和生成(策划测试表目录2)")]
static void CopyTestBuildCfg2()
{
Debug.Log("策划测试表目录2");
string exepath = LubanToolsPath;
string SrcTestDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy2/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = LubanToolsPath + "gen_code_bin_test_fenqu2.bat";
proc.StartInfo.WorkingDirectory = LubanToolsPath;
proc.Start();
HandleRunningInstance(proc);
}
//[MenuItem("项目工具/配置生成/拷贝策划配置和生成(策划测试表目录 - 验证数据)")]
//static void CopyTestBuildCfg_Test()
//{
// string exepath = LubanToolsPath;
// string SrcTestDir = "";
// string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
// foreach (var pc in pathcfg)
// {
// var parr = pc.Split('=');
// if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
// }
// if (string.IsNullOrEmpty(SrcTestDir))
// {
// Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
// return;
// }
// System.Diagnostics.Process proc = new System.Diagnostics.Process();
// proc.StartInfo.FileName = LubanToolsPath + "gen_code_bin - 验证策划测试表目录结构.bat";
// //proc.StartInfo.Arguments = string.Format("10");//this is argument
// //proc.StartInfo.UseShellExecute = false;//运行时隐藏dos窗口
// //proc.StartInfo.CreateNoWindow = false;//运行时隐藏dos窗口
// proc.StartInfo.WorkingDirectory = LubanToolsPath;
// //proc.StartInfo.Verb = "runas";//设置该启动动作,会以管理员权限运行进程
// proc.Start();
// //proc.WaitForExit();
// HandleRunningInstance(proc);
//}
[MenuItem("项目工具/Protobuff生成/生成Protobuff CS文件")]
static void SVNBuildProtobuffCS()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ProtoBuffDir = "";
string SvnDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ProtoBuffDir") ProtoBuffDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
if (string.IsNullOrEmpty(ProtoBuffDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ProtoBuffDir=D:\\Project\\proto");
return;
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = ProtoBuffDir + "/build_cs.bat";
//proc.StartInfo.Arguments = string.Format("10");//this is argument
//proc.StartInfo.UseShellExecute = false;//运行时隐藏dos窗口
//proc.StartInfo.CreateNoWindow = false;//运行时隐藏dos窗口
proc.StartInfo.WorkingDirectory = ProtoBuffDir;
//proc.StartInfo.Verb = "runas";//设置该启动动作,会以管理员权限运行进程
proc.Start();
//proc.WaitForExit();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/配置生成/打开配置表拷贝名称配置文件")]
static void Opencopy_NameCfg()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/copy_NameCfg.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = exepath + "/copy_NameCfg.txt";
//proc.StartInfo.Arguments = string.Format("10");//this is argument
//proc.StartInfo.UseShellExecute = false;//运行时隐藏dos窗口
//proc.StartInfo.CreateNoWindow = false;//运行时隐藏dos窗口
proc.StartInfo.WorkingDirectory = LubanToolsPath;
//proc.StartInfo.Verb = "runas";//设置该启动动作,会以管理员权限运行进程
proc.Start();
//proc.WaitForExit();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/配置生成/打开拷贝路径配置")]
static void Opencopy_Path()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = exepath + "/Copy1/copy_Path.txt";
//proc.StartInfo.Arguments = string.Format("10");//this is argument
//proc.StartInfo.UseShellExecute = false;//运行时隐藏dos窗口
//proc.StartInfo.CreateNoWindow = false;//运行时隐藏dos窗口
proc.StartInfo.WorkingDirectory = LubanToolsPath;
//proc.StartInfo.Verb = "runas";//设置该启动动作,会以管理员权限运行进程
proc.Start();
//proc.WaitForExit();
HandleRunningInstance(proc);
}
[MenuItem("项目工具/Git(原生)/Git-Bash打开Assets")]
static void GitBashAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string GitBashDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "GitBashDir") GitBashDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(GitBashDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置Git安装目录bin文件夹,加入配置,形如GitBashDir=C:\\Program Files\\Git");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = GitBashDir + "//git-bash.exe";
p.StartInfo.Arguments = " --cd=" + AssetsPath;
p.Start();
}
[MenuItem("项目工具/Git(TortoiseGit)/打开Assets")]
static void TortoiseGitAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string GitBashDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "TortoiseGitDir") GitBashDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(GitBashDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置TortoiseGitDir安装目录bin文件夹,加入配置,形如TortoiseGitDir=C:\\Program Files\\TortoiseGit\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = GitBashDir + "//TortoiseGitProc.exe";
p.StartInfo.Arguments = " /command:sync /path:\"" + AssetsPath + "\"";
p.Start();
}
[MenuItem("项目工具/Git(TortoiseGit)/TortoiseGit Revert")]
static void TortoiseGitRevertAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string GitBashDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "TortoiseGitDir") GitBashDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(GitBashDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置TortoiseGitDir安装目录bin文件夹,加入配置,形如TortoiseGitDir=C:\\Program Files\\TortoiseGit\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = GitBashDir + "//TortoiseGitProc.exe";
p.StartInfo.Arguments = " /command:revert /path:\"" + AssetsPath + "\"";
p.Start();
}
[MenuItem("项目工具/SVN更新/Assets目录")]
static void SVNUpdateAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + AssetsPath;
p.Start();
}
[MenuItem("项目工具/SVN更新/ProjectSettings目录")]
static void SVNUpdateProjectSettings()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + AssetsPath + "..\\ProjectSettings\\";
p.Start();
}
[MenuItem("项目工具/SVN更新/Luban目录")]
static void SVNUpdateLuban()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + LubanToolsPath;
p.Start();
}
[MenuItem("项目工具/SVN更新/策划目录")]
static void SVNUpdatePlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + SrcDir + "/../";
p.Start();
}
[MenuItem("项目工具/SVN更新/策划目录(测试配置)")]
static void SVNTESTUpdatePlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcTestDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + SrcTestDir + "/../";
p.Start();
}
[MenuItem("项目工具/SVN更新/Protobuff")]
static void SVNUpdateProtobuff()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ProtoBuffDir = "";
string SvnDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ProtoBuffDir") ProtoBuffDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
if (string.IsNullOrEmpty(ProtoBuffDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ProtoBuffDir=D:\\Project\\proto");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + ProtoBuffDir;
p.Start();
}
[MenuItem("项目工具/SVN更新/美术目录")]
static void SVNUpdateArts()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ArtsDir = "";
string SvnDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ArtsDir") ArtsDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(ArtsDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ArtsDir=E:\\Project\\美术");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:update /path:" + ArtsDir;
p.Start();
}
[MenuItem("项目工具/SVN提交/Assets目录")]
static void SVNCommitAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:commit /path:" + AssetsPath;
p.Start();
}
[MenuItem("项目工具/SVN提交/Luban目录")]
static void SVNCommitLuban()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:commit /path:" + LubanToolsPath;
p.Start();
}
[MenuItem("项目工具/SVN提交/策划目录")]
static void SVNCommitPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:commit /path:" + SrcDir;
p.Start();
}
[MenuItem("项目工具/SVN提交/策划目录(测试配置)")]
static void SVNTestCommitPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcTestDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:commit /path:" + SrcTestDir;
p.Start();
}
[MenuItem("项目工具/SVN还原/Assets目录")]
static void SVNRevertAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:revert /path:" + AssetsPath;
p.Start();
}
[MenuItem("项目工具/SVN还原/Luban目录")]
static void SVNRevertLuban()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:revert /path:" + LubanToolsPath;
p.Start();
}
[MenuItem("项目工具/SVN还原/策划目录")]
static void SVNRevertPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:revert /path:" + SrcDir;
p.Start();
}
[MenuItem("项目工具/SVN还原/策划目录(测试配置)")]
static void SVNTestRevertPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcTestDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:revert /path:" + SrcTestDir;
p.Start();
}
[MenuItem("项目工具/SVN日志/Assets目录")]
static void SVNlogAssets()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:log /path:" + AssetsPath;
p.Start();
}
[MenuItem("项目工具/SVN日志/Luban目录")]
static void SVNlogLuban()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:log /path:" + LubanToolsPath;
p.Start();
}
[MenuItem("项目工具/SVN日志/策划目录")]
static void SVNlogPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:log /path:" + SrcDir;
p.Start();
}
[MenuItem("项目工具/SVN日志/策划目录(测试配置)")]
static void SVNTestlogPlanning()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string SrcTestDir = "";
string SvnDir = "";
string LubanDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:log /path:" + SrcTestDir;
p.Start();
}
[MenuItem("项目工具/SVN日志/Protobuff")]
static void SVNlogProtobuff()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ProtoBuffDir = "";
string SvnDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ProtoBuffDir") ProtoBuffDir = parr[1].Trim();
if (parr[0].Trim() == "SvnDir") SvnDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SvnDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,形如SvnDir=C:\\Program Files\\TortoiseSVN\\bin");
return;
}
if (string.IsNullOrEmpty(ProtoBuffDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ProtoBuffDir=D:\\Project\\proto");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = SvnDir + "//TortoiseProc.exe";
p.StartInfo.Arguments = " /command:log /path:" + ProtoBuffDir;
p.Start();
}
[MenuItem("项目工具/打开目录/Assets")]
static void OpenAssetsDir()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + GameAssetsPath;
p.Start();
}
[MenuItem("项目工具/打开目录/Bundles")]
static void OpenBundlesDir()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + BundlesPath;
p.Start();
}
[MenuItem("项目工具/打开目录/Luban")]
static void OpenLubanDir()
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + LubanToolsDesignerConfigsPath;
p.Start();
}
[MenuItem("项目工具/打开目录/策划")]
static void OpenPlanningDir()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string LubanDir;
string SrcDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcDir") SrcDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + SrcDir;
p.Start();
}
[MenuItem("项目工具/打开目录/策划(测试配置)")]
static void OpenTestPlanningDir()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string LubanDir;
string SrcTestDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "SrcTestDir") SrcTestDir = parr[1].Trim();
if (parr[0].Trim() == "LubanDir") LubanDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(SrcTestDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置测试策划目录的路径,加入配置,形如SrcTestDir=D:\\Project\\Planning\\策划配置表-测试版本");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + SrcTestDir;
p.Start();
}
[MenuItem("项目工具/打开目录/ProtoBuff")]
static void OpenProtoBuffDir()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ProtoBuffDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ProtoBuffDir") ProtoBuffDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(ProtoBuffDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ProtoBuffDir=D:\\Project\\proto");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + ProtoBuffDir;
p.Start();
}
[MenuItem("项目工具/打开目录/美术目录")]
static void OpenArtsfDir()
{
string exepath = LubanToolsPath;
if (!File.Exists(exepath + "/Copy1/copy_Path.txt"))
{
Debug.Log("copy_Path 配置不存在");
return;
}
string ProtoBuffDir = "";
string[] pathcfg = File.ReadAllText(exepath + "/Copy1/copy_Path.txt").Split('\n'); ;
foreach (var pc in pathcfg)
{
var parr = pc.Split('=');
if (parr[0].Trim() == "ArtsDir") ProtoBuffDir = parr[1].Trim();
}
if (string.IsNullOrEmpty(ProtoBuffDir))
{
Debug.LogError("请在luban目录copy_Path.txt中配置SVN安装目录bin文件夹,加入配置,ArtsDir=E:\\Project\\美术");
return;
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + ProtoBuffDir;
p.Start();
}
#region
[MenuItem("Assets/资源管理器定位文件", false)]
public static void FindAssetsFileDir()
{
string path = ProjectPath + "\\" + AssetDatabase.GetAssetPath(Selection.activeInstanceID);
path = path.Replace('/', '\\');
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartInfo.Arguments = @" /select, " + path;
p.Start();
}
#endregion
#endif
}