在項目開發的過程中,我們需要對一個.cs文件添加一些注釋(例如:創建者,創建日期,該類的作用),或者給創建的類增加某個通用的函數。如果我們每創建一個.cs文件都需要添加這些會影響我們的開發效率,那么這個時候就需要一個模版來解決這個問題。
首先,我們打開Unity的安裝目錄E:\unity2018.2.16f1\Unity\Editor\Data\Resources\ScriptTemplates,當然每個人在電腦上安裝的目錄不一樣,所以注意前面目錄及unity版本的問題;打開81-C# Script-NewBehaviourScript.cs.txt文件,我們可以先看一下Unity默認創建.cs文件是它的格式。
public class #SCRIPTNAME# : MonoBehaviour { // Use this for initialization void Start () { #NOTRIM# } // Update is called once per frame void Update () { #NOTRIM# } }
我們可以看到這個模版正是我們每次創建.cs文件時對應的模版,這個時候我們就會想到,那是不是把這個模版改掉之后我們創建的.cs文件默認的文本也改變了呢?
/**************************************************** 文件:#SCRIPTNAME#.cs 作者:Plane 郵箱: 1785275942@qq.com 日期:#CreateTime# 功能:Nothing *****************************************************/ using UnityEngine; public class #SCRIPTNAME# : MonoBehaviour { }
這個時候我們去Unity里面創建一個.cs文件,發現它的創建內容確實變了,但是這個時候又有一個問題出現了,我們創建出來的文本的注釋不會隨着時間的推移進行改動,或者說如何在創建一個.cs文件的時候就將需要修改的地方進行修改。
我們在Unity的項目工程中新建一個文件夾Editor,然后新建一個.cs文件
/************************************************************ 文件: ScriptsInfoRecoder.cs 作者: Plane 郵箱: 1785275942@qq.com 日期: 2013/10/13 12:01 功能: 記錄腳本信息 *************************************************************/ using System; using System.IO; public class ScriptsInfoRecoder : UnityEditor.AssetModificationProcessor { private static void OnWillCreateAsset(string path) { path = path.Replace(".meta", ""); if (path.EndsWith(".cs")) { string str = File.ReadAllText(path); str = str.Replace("Plane", Environment.UserName).Replace( "#CreateTime#", string.Concat(DateTime.Now.Year, "/", DateTime.Now.Month, "/", DateTime.Now.Day, " ", DateTime.Now.Hour, ":", DateTime.Now.Minute, ":", DateTime.Now.Second)); File.WriteAllText(path, str); } } }
這個時候我們發現再次新建的文件它的日期變了,如果我們還需要修改其他的一些模版信息,同理,可以按照上面的方法來實現。