在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的功能。