Unity Editor 编辑器扩展 十四 将TortoiseSVN的基础操作内嵌Unity
2017-01-23 13:14
901 查看
集成svn同步工具,非常好用
/* * 将TortoiseSVN的基础操作内嵌Unity * 这里只是举了几个简单的例子 * 具体命令可参见TortoiseSVN的help功能 * */ using UnityEngine; using UnityEditor; using System.Diagnostics; public class UnitySVN { private const string COMMIT = "commit"; private const string UPDATE = "update"; private const string SVN_COMMIT = "Assets/SVN/Commit"; private const string SVN_COMMIT_ALL = "Assets/SVN/CommitAll"; private const string SVN_UPDATE = "Assets/SVN/Update"; private const string SVN_UPDATE_ALL = "Assets/SVN/UpdateAll"; /// <summary> /// 创建一个SVN的cmd命令 /// </summary> /// <param name="command">命令(可在help里边查看)</param> /// <param name="path">命令激活路径</param> public static void SVNCommand(string command, string path) { //closeonend 2 表示假设提交没错,会自动关闭提交界面返回原工程,详细描述可在 //TortoiseSVN/help/TortoiseSVN/Automating TortoiseSVN里查看 string c = "/c tortoiseproc.exe /command:{0} /path:\"{1}\" /closeonend 2"; c = string.Format(c, command, path); ProcessStartInfo info = new ProcessStartInfo("cmd.exe", c); info.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(info); } /// <summary> /// 提交选中内容 /// </summary> [MenuItem(SVN_COMMIT)] public static void SVNCommit() { SVNCommand(COMMIT, GetSelectedObjectPath()); } /// <summary> /// 提交全部Assets文件夹内容 /// </summary> [MenuItem(SVN_COMMIT_ALL)] public static void SVNCommitAll() { SVNCommand(COMMIT, Application.dataPath); } /// <summary> /// 更新选中内容 /// </summary> [MenuItem(SVN_UPDATE)] public static void SVNUpdate() { SVNCommand(UPDATE, GetSelectedObjectPath()); } /// <summary> /// 更新全部内容 /// </summary> [MenuItem(SVN_UPDATE_ALL)] public static void SVNUpdateAll() { SVNCommand(UPDATE, Application.dataPath); } /// <summary> /// 获取全部选中物体的路径 /// 包括meta文件 /// </summary> /// <returns></returns> private static string GetSelectedObjectPath() { string path = string.Empty; for (int i = 0; i < Selection.objects.Length; i++) { path += AssetsPathToFilePath(AssetDatabase.GetAssetPath(Selection.objects[i])); //路径分隔符 path += "*"; //meta文件 path += AssetsPathToFilePath(Asset aa52 Database.GetAssetPath(Selection.objects[i])) + ".meta"; //路径分隔符 path += "*"; } return path; } /// <summary> /// 将Assets路径转换为File路径 /// </summary> /// <param name="path">Assets/Editor/...</param> /// <returns></returns> public static string AssetsPathToFilePath(string path) { string m_path = Application.dataPath; m_path = m_path.Substring(0, m_path.Length - 6); m_path += path; return m_path; } }
相关文章推荐
- unity游戏引擎基础之编辑器菜单栏扩展(三)
- unity编辑器扩展篇-视图拓展基础
- [置顶]Emacs for vi Users | Emacs 和 Vim 基础键对应 ----<更给力的行编辑器操作> .
- Linux 基础操作之 Vim 编辑器
- 边记边学PHP-(十四)MySql数据库基础操作1
- Unity扩展编辑器--类型3:Custom Editors
- Unity扩展编辑器--类型1:Editor Windows
- [置顶]Emacs for vi Users | Emacs 和 Vim 基础键对应 ----<编辑器基础操作, buffer操作>
- SVN(TortoiseSVN)详细教程(二)--TortoiseSVN Client基础操作
- Unity 编辑器扩展 场景视图内控制对象
- UnityEditor扩展编辑器实现从场景中渲染得到Cubemap
- unity编辑器扩展
- MongoDB与PHP的扩展进行添加、修改、查询、删除等操作基础教程
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- Unity Editor Toolbar 编辑器扩展
- Emacs for vi Users ----<编辑器基础操作, buffer操作>
- 标签自定义属性,获取和操作的方法封装以及在此基础上对标签原有属性的扩展...
- MongoDB与PHP的扩展进行添加、修改、查询、删除等操作基础教程
- Unity 编辑器扩展自定义窗体