SVN(3)-集成到Unity Editor

发布时间:2026/10/28 6:39:58

SVN(3)-集成到Unity Editor 仍然是为了节省在不同编辑器之间切换带来的耗时和降低对思维流延续性的负面影响。所以在Unity编辑器内Project资源管理面板的右键菜单中集成了三种操作命令更新提交和查看日志。可以针对文件夹也可以针对单子个文件进行操作。当提交或者更新或者查看指定文件或者文件夹的日志时都需要先在Project面板中选中该指定的对象。具体实现步骤创建一个继承自Editor的类命名为比如:SvnHelper.cs将该类置于一个命名为Editor的文件夹目录下为SvnHelper编写具体的实现逻辑逻辑实现代码using System.Diagnostics; using System.IO; using UnityEditor; using UnityEngine; public class SvnHelper : Editor { [MenuItem (Assets/SVN 提交 Assets目录, false, 0)] private static void Commit_Assets () { RunCmd (TortoiseProc.exe, string.Format (/command:commit /path:\{0}\\{1}\ /closeonend:0, System.Environment.CurrentDirectory, Assets)); } [MenuItem (Assets/SVN 更新 Assets目录, false, 0)] private static void Update_Assets () { RunCmd (TortoiseProc.exe, string.Format (/command:update /path:\{0}\\{1}\ /closeonend:0, System.Environment.CurrentDirectory, Assets)); } [MenuItem (Assets/SVN 提交 选中的 File|Folder, false, 2)] private static bool Commit_FileOrFolder () { if (Selection.activeObject null) return false; else { RunCmd (TortoiseProc.exe, string.Format (/command:commit /path:\{0}\\{1}\ /closeonend:0, System.Environment.CurrentDirectory, AssetDatabase.GetAssetPath (Selection.activeObject))); return true; } } [MenuItem (Assets/SVN 更新 选中的 File|Folder, false, 2)] private static bool Update_FileOrFolder () { if (Selection.activeObject null) return false; else { RunCmd (TortoiseProc.exe, string.Format (/command:update /path:\{0}\\{1}\ /closeonend:0, System.Environment.CurrentDirectory, AssetDatabase.GetAssetPath (Selection.activeObject))); return true; } } [MenuItem (Assets/SVN 提交 Root, false, 4)] private static void Commit_Root () { RunCmd (TortoiseProc.exe, string.Format (/command:commit /path:\{0}\ /closeonend:0, System.Environment.CurrentDirectory)); } [MenuItem (Assets/SVN 更新 Root, false, 4)] private static void Update_Root () { RunCmd (TortoiseProc.exe, string.Format (/command:update /path:\{0}\ /closeonend:0, System.Environment.CurrentDirectory)); } static string SVN_BASE Application.dataPath.Replace (/, \\).Remove (Application.dataPath.Replace (/, \\).Length - 6, 6); [MenuItem (Assets/SVN Logs, false, 5)] public static void Logs () { RunCmd (TortoiseProc.exe, /command:log /path:\ SVN_BASE \); } [MenuItem (Assets/SVN LogFile, false, 5)] public static void LogFile () { RunCmd (TortoiseProc.exe, /command:log /path:\ System.Environment.CurrentDirectory \\ AssetDatabase.GetAssetPath (Selection.activeObject) \ /closeonend:0); } /// summary /// 运行外部程序 /// /summary /// param namecmdExe指定应用程序的完整路径如果该程序在系统环境变量中只需要填写对用的程序名称就可以/param /// param namecmdStr执行命令行参数/param private static bool RunCmd (string cmdExe, string cmdStr) { bool result false; try { using (Process myPro new Process ()) { //指定启动进程是调用的应用程序和命令行参数 ProcessStartInfo psi new ProcessStartInfo (cmdExe, cmdStr); myPro.StartInfo psi; myPro.Start (); // 是否加上这句话看个人需求。如果加上的话我们必须关掉弹出的SVN窗口才能继续操作。如果不加上则可以弹出SVN也可以继续修改unity项目。个人建议加上比较好 myPro.WaitForExit (); result true; } } catch { Debug.LogError (SvnHelper 执行外部程序出错); } return result; } }
延伸阅读

更多相关文章

2026/10/23 15:20:37

电脑多开软件哪个好用 电脑多开软件推荐

不少用户都会反复纠结电脑多开软件哪个好用,试过多款工具后,常会遇到画质缩水、延迟偏高、设备连接受限等问题。职场人需要同时登录多个业务账号,并行处理表格、对接消息。电脑多开软件哪个好用?综合实测对比各类工具,…

2026/10/28 6:38:03

C#解析CAN DBC文件:从格式到上位机报文收发完整指南

简介:面向汽车电子与嵌入式总线开发者的CAN DBC解析查看工具,基于C#实现并附带完整工程源码,适合需要理解DBC格式、快速上手总线数据解析或进行二次定制的工程师。压缩包共含36个文件,以7个.cs源文件为核心,覆盖界面交…

2026/10/28 6:38:03

MATLAB实现GPS TEC与DCB联合估计的完整流程

简介:面向GPS电离层研究与导航定位应用人员,这份Matlab程序集利用GPS观测数据与精密星历,基于多项式或球谐函数模型,实现接收机与卫星DCB的同时估计,并进一步计算电离层TEC,为导航单位提供电离层延迟改正。…

2026/10/28 6:38:03

ADMap高精地图工程实践:分层建模、空间索引与车端加载

1. 先把 ADMap 这个词拆开看:它到底是个什么东西ADMap 这个代号我第一次见到时,第一反应是某个投放平台的数据看板,点进去才发现是一套面向智能驾驶的高精地图工程。拆开就是 Autonomous Driving Map,圈内更习惯直呼高精地图或 HD…

2026/10/28 6:38:03

Java金融数据分析系统:架构设计与量化实现

1. 项目概述:金融数据分析系统的价值与定位这个基于Java的股票基金交易分析系统,本质上是一个面向个人投资者和金融研究者的智能分析工具。我在金融科技领域深耕多年,见过太多投资者因为缺乏专业分析工具而盲目操作。这个系统正是为了解决这个…

2026/10/28 6:33:03

Linux I/O模型演进与性能优化实践

1. Linux I/O 演进的技术脉络在服务端开发领域,I/O性能优化始终是系统设计的核心命题。从早期的管道通信到如今的零拷贝技术,Linux I/O模型经历了数次重大革新。这种演进并非偶然,而是随着网络应用规模扩大和硬件性能提升的必然结果。我曾在多…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑