在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受。是不是可以集成svn到unity中呢?查了一圈unity store可以看到很多svn的第三方插件。考虑到我们只需要简单的功能,而且不希望加入额外复杂的代码,最后还是自己写一个插件。功能就是更新或者提交assets文件夹。
如果还没有svn对项目进行管理的,按照以下2步操作:
1、下载svn客户端,安装。
2、从svn版本库checkout一个工程。
具体svn操做这里不做展开。
查询svn的文档可以知道svn提供各种命令符操作。因此,原理非常简单,利用命令符操作调用svn即可。代码也非常简单:
更新:Process.Start("TortoiseProc.exe", "/command:update /path:" + Application.dataPath + " /closeonend:0");
提交:Process.Start("TortoiseProc.exe", "/command:commit /path:" + Application.dataPath + " /closeonend:0");
好,我们写一个cs文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class SvnOperater : MonoBehaviour { [MenuItem( "SVN/Update" )] public static void Update() { #if UNITY_STANDALONE_WIN||UNITY_EDITOR Process.Start( "TortoiseProc.exe" , "/command:update /path:" + Application.dataPath + " /closeonend:0" ); #endif } [MenuItem( "SVN/Commit" )] public static void Commit() { #if UNITY_STANDALONE_WIN||UNITY_EDITOR Process.Start( "TortoiseProc.exe" , "/command:commit /path:" + Application.dataPath + " /closeonend:0" ); #endif } } |
好,注意文件名和类名相同,放在assets目录下的任意一个Editor目录下。回到unity,很快,上方的菜单里就会出现“SVN”,二级菜单有“Update”和“Commit”,点击一下,svn的界面就会出现了。
愉快地使用吧。
以此类推,你能用开发集成很多svn的功能。