unity嵌入 svn tools 整理
来源:互联网 发布:大数据相关技术介绍 编辑:程序博客网 时间:2024/05/18 09:25
using System;using System.Collections.Generic;using UnityEditor;using UnityEngine;namespace Tools{ public static class SVNTool { /// <summary> /// SVN更新指定的路径 /// 路径示例:Assets/1.png /// </summary> /// <param name="assetPaths"></param> public static void UpdateAtPath(string assetPath) { List<string> assetPaths = new List<string>(); assetPaths.Add(assetPath); UpdateAtPaths(assetPaths); } /// <summary> /// SVN更新指定的路径 /// 路径示例:Assets/1.png /// </summary> /// <param name="assetPaths"></param> public static void UpdateAtPaths(List<string> assetPaths) { if (assetPaths.Count == 0) { return; } string arg = "/command:update /closeonend:0 /path:\""; for (int i = 0; i < assetPaths.Count; i++) { var assetPath = assetPaths[i]; if (i != 0) { arg += "*"; } arg += assetPath; } arg += "\""; SvnCommandRun(arg); } /// <summary> /// SVN提交指定的路径 /// 路径示例:Assets/1.png /// </summary> /// <param name="assetPaths"></param> public static void CommitAtPaths(List<string> assetPaths, string logmsg = null) { if (assetPaths.Count == 0) { return; } string arg = "/command:commit /closeonend:0 /path:\""; for (int i = 0; i < assetPaths.Count; i++) { var assetPath = assetPaths[i]; if (i != 0) { arg += "*"; } arg += assetPath; } arg += "\""; if (!string.IsNullOrEmpty(logmsg)) { arg += " /logmsg:\"" + logmsg + "\""; } SvnCommandRun(arg); } [MenuItem("Assets/SVN Tool/SVN 更新")] private static void SvnToolUpdate() { List<string> assetPaths = SelectionUtil.GetSelectionAssetPaths(); UpdateAtPaths(assetPaths); } [MenuItem("Assets/SVN Tool/SVN 提交...")] private static void SvnToolCommit() { List<string> assetPaths = SelectionUtil.GetSelectionAssetPaths(); CommitAtPaths(assetPaths); } [MenuItem("Assets/SVN Tool/显示日志")] private static void SvnToolLog() { List<string> assetPaths = SelectionUtil.GetSelectionAssetPaths(); if (assetPaths.Count == 0) { return; } // 显示日志,只能对单一资产 string arg = "/command:log /closeonend:0 /path:\""; arg += assetPaths[0]; arg += "\""; SvnCommandRun(arg); } [MenuItem("Assets/SVN Tool/全部更新", false, 1100)] private static void SvnToolAllUpdate() { // 往上两级,包括数据配置文件 string arg = "/command:update /closeonend:0 /path:\""; arg += "."; arg += "\""; SvnCommandRun(arg); } [MenuItem("Assets/SVN Tool/全部日志", false, 1101)] private static void SvnToolAllLog() { // 往上两级,包括数据配置文件 string arg = "/command:log /closeonend:0 /path:\""; arg += "."; arg += "\""; SvnCommandRun(arg); } [MenuItem("Assets/SVN Tool/全部恢复", false, 1102)] private static void SvnToolAllRevert() { // 往上两级,包括数据配置文件 string arg = "/command:revert /closeonend:0 /path:\""; arg += "."; arg += "\""; SvnCommandRun(arg); } /// <summary> /// SVN命令运行 /// </summary> /// <param name="arg"></param> private static void SvnCommandRun(string arg) { string workDirectory = Application.dataPath.Remove(Application.dataPath.LastIndexOf("/Assets", StringComparison.Ordinal)); System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo {UseShellExecute = false,CreateNoWindow = true, FileName = "TortoiseProc", Arguments = arg, WorkingDirectory = workDirectory}); } } }//新建编辑器脚本文件SelectionUtil.cs:using System;using System.Collections.Generic;using UnityEditor;public class SelectionUtil{ /// <summary> /// 得到选中资产路径列表 /// </summary> /// <returns></returns> public static List<string> GetSelectionAssetPaths() { List<string> assetPaths = new List<string>(); // 这个接口才能取到两列模式时候的文件夹 foreach (var guid in Selection.assetGUIDs) { if (string.IsNullOrEmpty(guid)) { continue; } string path = AssetDatabase.GUIDToAssetPath(guid); if (!string.IsNullOrEmpty(path)) { assetPaths.Add(path); } } return assetPaths; }}
阅读全文
0 0
- unity嵌入 svn tools 整理
- Unity Tools
- svn tools
- Unity嵌入uLua
- unity嵌入到安卓里
- unity Test Tools 测试
- unity NGUI Tutorial Tools
- Unity VertexPainting Tools
- [Tool]SVN Tools
- SVN整理
- SVN整理
- android 嵌入unity页面注意事项
- Unity|Visual Studio Tools for Unity
- Visual Studio Tools for Unity
- php嵌入脚本语言基础知识整理
- 【Unity/SVN】使用SVN管理Unity项目
- [TOOLS] SVN命令使用详解
- mobile automation tools(未整理)
- White matter hyperintensity and stroke lesion segmentation and differentiation using cnn_part2_2017
- reactwebAPP的各个页面之间的跳转以及footer相对应!
- K-D树小结
- 2017/8/8
- 动态规划 LCS 求两个序列A,B中全部的最长公共子序列
- unity嵌入 svn tools 整理
- PostgreSQL基础2
- hadoop单例模式安装运行
- TCP/IP协议学习笔记
- Linux 录屏及制作GIF
- 算法---累加/累积
- 暑假第8天总结
- loadrunner 服务器端性能指标分析
- JDK 学习日记