最近用到乙個svn功能:在本地乙個資料夾路徑下上傳檔案,本地其他多個路徑下也可update到前面上傳的檔案,由於路徑不同手動開啟多個資料夾更新比較麻煩,於是用unity寫了個一鍵更新的視窗工具。
以下是部分核心**
視窗類:
string svnfoldername = "/.svn"
; // 用於檢測資料夾是否受svn控制
string lastsourcefolderpath = ""
; static string listfilename = "svndata.txt"
; static vector2 defaultwindowsize = new vector2(800,650);
static bool isclose = false;
public static listsourcefolderlist = new list();
// 視窗選單路徑 %q 表示快捷鍵ctrl+q開啟
[unityeditor.menuitem("window/svnmanager %q")]
// 例項化視窗
static void init()
else
isclose = !isclose;
}void ongui()
if (guilayout.button("reload"))
if (guilayout.button("儲存"))
guilayout.endhorizontal();
guilayout.beginscrollview(vector2.zero,guilayout.width(800),guilayout.height(600));
for (int i = 0
; i < sourcefolderlist.count; i++)
guilayout.label(sourcefolderlist[i].sourcepath,editorstyles.boldlabel);
}// commit
gui.backgroundcolor = color.yellow
; if (guilayout.button("commit..."))
svnutils.svncommit(sourcefolderlist[i].sourcepath);
}gui.backgroundcolor = color.white
; guilayout.endhorizontal();
// 設定目標資料夾路徑
guilayout.beginhorizontal();
guilayout.label("目標:");
sourcefolderlist[i].targetpath = editorguilayout.textfield(sourcefolderlist[i].targetpath);
if (guilayout.button("設定目標路徑..."))
guilayout.label(sourcefolderlist[i].targetpath,editorstyles.boldlabel);
}// update
gui.backgroundcolor = color.green
; if (guilayout.button("update..."))
// 檢測資料夾是否受svn控制
if (system.io
.directory
.exists(sourcefolderlist[i].targetpath + svnfoldername)) else
}else
sourcefolderlist[i].lastsourcepath = sourcefolderlist[i].sourcepath
; }
gui.backgroundcolor = color.white
; guilayout.endhorizontal();
guilayout.beginhorizontal();
if (guilayout.button("copy"))
gui.backgroundcolor = color.red
;
if (guilayout.button("刪除"))
gui.backgroundcolor = color.white
; guilayout.endhorizontal();
guilayout.space(20f);
}guilayout.endscrollview();
guilayout.endvertical();
}// 新增一條路徑
folderpath addfolderpath()
static void reload()
}bool checkfolderpathcomplete(string _sourcepath,string _targetpath)
if (string.isnullorempty(_targetpath))
return true;
}
svn工具類
// 執行命令列
public
static
void
processcommand(string command,string argument) else
system.diagnostics.process process = system.diagnostics.process.start(info);
if(!info.useshellexecute)
process.waitforexit();
process.close();
}
Unity編輯器擴充套件
unity引擎除了提供大部分通用的功能以外,還為開發者提供了編輯器的擴充套件開發介面,開發者可以編寫編輯器指令碼,打造適合自己的遊戲輔助工具和定製的編輯器。以前指令碼開發中使用的一些api和元件類,都屬於執行時類,unity還提供了編輯器類用於編輯器的擴充套件開發,包括編輯器環境下使用的gui類,編...
Unity擴充套件編輯器三
scene檢視是編輯遊戲模型的地方,其實它還可以進行編輯,如下圖所示,我給scene檢視做了簡單的編輯 scene檢視的擴充套件是基於物件的,意思是你必須在hierarchy檢視中選擇乙個物件才行,hierarchy檢視中選擇不同的物件可以有不同的scene檢視。圖中我麼建立了乙個立方體物件,接著給...
Unity編輯器擴充套件 視窗建立
using unityeditor 展示對話方塊中的屬性 public class playerchange scriptablewizard 建立表和屬性被修改的時候每幀被呼叫 private void onwizardupdate 當物體在選中或未選中狀態發生改變時呼叫 private void...