unity編輯器擴充套件 SVN一鍵更新工具

2021-07-23 14:54:59 字數 3606 閱讀 8747

最近用到乙個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...