2014年6月9日 星期一

Unity:自定腳本模板 script template

通常我們在 Unity 編輯器內的 Project view 建立新的 script 檔案時,Unity 會先幫我們指定預設的檔名及預先填入比較通用的 script 內容,如果是 C# 檔,檔案內的 class 名稱也會自動符合檔名,但有時候我們的需求並不是 Unity 預先幫我們建立的那樣,則要每次都手動去改掉,好像有點麻煩;其實這部分是可以自定義的,將來每次新建 script 檔案就不用另外修改了。

首先,我們應該可以直接在以下路徑找到 Unity 的腳本模板檔案...

Mac:/Applications/Unity/Unity.app/Contents/Resources/ScriptTemplates
Windows:C:\Program Files (x86)\Unity\Editor\Data\Resources\ScriptTemplates

當然這個路徑可能因為 Unity 安裝的位置不同而改變,不過 Unity 之後的路徑應該是不變的,另外要注意的是,如果是 Mac 使用者,記得要在 Unity.app 顯示套件內容才能進入裡面的 Contents 哦~



找到前面說的路徑位置之後,應該可以在該資料夾下面看見以 80-Javascript-NewBehaviourScript.js.txt 這種格式命名的檔案,以目前的 Unity 4.5 為例,應該會有五個檔案,分別代表我們在 Project view 點擊 Create 時所展開的選單中的那五個可建立的 Script 檔。

ScriptTemplates 資料夾裡的 5 個腳本模板檔案

Project view 的 Create 的 5 種可建立的 script 檔案
因此,我們利用 Notepad++ 或 Sublime Text 這類可編輯純文字檔案的編輯器開啟這裡的檔案就可以編輯腳本模板了,編輯完成存檔之後,重新開啟 Unity 再建立新的 script 就會發現已經依照自己定義的預先寫好一些程式內容,所以,除了 Unity 原本預設幫我們寫好的 Start() 及 Update() 之外,我們可以任意地加入自己常用的部分,例如 Awake()、OnEnable()、OnDestroy() .... 之類的。
同時,有個預定義常數 #SCRIPTNAME# 則是代表 script 檔名,只要你的腳本模板檔案內有這個預定義常數的地方,在 Project view 建立 script 之後,都會使用檔名取代掉 script 裡面的 #SCRIPTNAME#,所以我們可以依照需求好好利用它。

新建立的 Script 預設內容已經改變
這個時候應該會產生一些疑問,只能從這五個檔案去改內容嗎?是否可以新增其他的模板檔案?常寫 Editor script 或是繼承 ScriptableObject class 的 script 的人應該都會有這種需求吧!讓我們來觀察模板檔案的檔名命名規則,可以得出這樣的結論...

順序編號-顯示文字-預設檔名.預設副檔名.txt

所以,只要複製原本的其中任一個腳本模板檔案,依照這個格式重新命名擋名,並注意『順序編號』不要重複,在重新開啟 Unity 之後,在 Project view 點擊 Create 就可以看到多出新的選擇了。
新增 5 個自定義的腳本模板
Project view 的 Create 多了 5 種可建立的 script 檔案