修改Unity腳本模板的方法合計


作為一個習慣於偷懶的程序,重復性的無聊內容是最讓人無奈的事,就比如我們創建Unity腳本之后,需要手動調整生成的新腳本的格式、編碼、內容;如果我們要編寫的是編輯器或者服務器端腳本,需要修改的內容就會更多等等,因此我們要尋求一種偷懶的解決辦法,針對這個問題,之前也使用過一些解決辦法,今天就索性總結一下:
1、找到Unity版本對應的安裝路徑,修改對應的腳本模板:
XXX\Editor\Data\Resources\ScriptTemplates\下的模板,直接修改其格式、編碼,這樣之后在使用時,就可以省略其修改;如果需要修改其內容,則可以在腳本模板中使用一些通配符,然后在腳本生成中進行替換處理,比如我們將模板修改如下:
// Created by #DEVELOPER# on #CREATEDATE#.
using UnityEngine;
using System.Collections;
 
public class #SCRIPTNAME# : MonoBehaviour
{
    #region Some Comment
    
    #endregion 
    
    void Start ()
    {
        
    }
    
    void Update () 
    {
        
    }
}
然后針對性的寫一個Editor進行處理,監聽創建事件:
using UnityEngine;
using UnityEditor;
using System.Collections;
 
public static void OnWillCreateAsset (string _path)
{
    _path = _path.Replace(".meta", "");
    int tIndex = _path.LastIndexOf(".");
    string tFile = _path.Substring(tIndex);
    if(tFile != ".cs" && tFile != ".js" && tFile != ".boo")
    {
        return;
    }
 
    tIndex = Application.dataPath.LastIndexOf("Assets");
    _path = Application.dataPath.Substring(0, tIndex) + _path;
    tFile = System.IO.File.ReadAllText(_path);
    
    tFile = tFile.Replace("#CREATEDATE#", System.DateTime.Now.ToString("d")).Replace("#DEVELOPER#", PlayerSettings.companyName); 
 
    System.IO.File.WriteAllText(_path, tFile);
    AssetDatabase.Refresh();
}
該Editor腳本可以打包成unity,放入對應的XXX\Editor\Standard Packages\下,以后每次使用時,直接導入。
2、針對MonoDevelop工具本身進行擴展,XXX\MonoDevelop\Addins\目錄下,放入擴展的插件,可以參考下
MonoDevelop file templates for Unity C# scripts,本身提供了可下載的插件,我們可以進行自身定制:不過由於MonoDevelop相對於VS的不足,因此,可能需要由擴展Mono改為擴展VS工具。
3、實現自身的腳本模板:此時我們仍然有較大的靈活性:
1)Unity本身是個很好的工具,給我們提供了很靈活的接口:
讓我們先觀察下XXX\Editor\Data\Resources\ScriptTemplates\下的模板命名,分析下命名規則,其實是有規律的,所有的模板命名都符合:
編號(可能是顯示順序)—創建時要顯示在Unity中的問題—腳本創建之后默認的命名 . 腳本的擴展名 . txt
因此,我們可以將自己的模板放置在本目錄下(Unity需要重啟),這樣在Unity創建時,選擇我們自身的模板就可以按需創建了;同時結合方法2,我們就可以更懶了。
2)我們也可以選擇自己創建模板,這里我們可以參考MOMO大神的博客:
 
這樣合計合計,綜合各種方法,我們就可以安心大膽的偷懶了!
凡此種種,重復性的勞動總能找到偷懶的方法的!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM