[Unity] スクリプトのテンプレートを変更する

Unity上でスクリプトを新規作成するとき、以下のようにあらかじめテンプレートが入力された状態で作成されます。

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}
}

このような記述はテンプレートファイルとしてUnityのインストールディレクトリ配下に格納されています。

Windows
 (Unityのインストールパス)EditorDataResourcesScriptTemplates
Mac
 (Unityのインストールパス)ContentsResourcesScriptTemplates

この中のテキストファイルを書き換えることで自由なテンプレートに変更できます。
C#用のスクリプトファイルは81-C# Script-NewBehaviourScript.cs.txtです。

using UnityEngine;
using System.Collections;

public class #SCRIPTNAME# : MonoBehaviour {

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}
}

#SCRIPTNAME#はスクリプトファイル名に置換されます。
これを含め、以下のような置換シンボルがあります。

#NAME#
 拡張子なしのファイル名
#SCRIPTNAME#
 空白、拡張子なしのファイル名
#SCRIPTNAME_LOWER#
 空白、拡張子なしでキャメルケースのファイル名

たとえば、以下のように書き換えてみます。

//
// Author   : ftvoid
// File     : #NAME#.cs
// Desc     : ★スクリプトの説明★
//

using UnityEngine;
using System.Collections;

//
// Class    : #SCRIPTNAME#
// Desc     : ★クラスの説明★
//
public class #SCRIPTNAME# : MonoBehaviour {
    // Use this for initialization
    void Awake() {

    }

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}
}

この後にNewBehaviourScript.csというスクリプトを新規作成して開いてみると以下のようになります。

//
// Author   : ftvoid
// File     : NewBehaviourScript.cs
// Desc     : ★スクリプトの説明★
//

using UnityEngine;
using System.Collections;

//
// Class    : NewBehaviourScript
// Desc     : ★クラスの説明★
//
public class NewBehaviourScript : MonoBehaviour {
    // Use this for initialization
    void Awake() {

    }

	// Use this for initialization
	void Start () {

	}

	// Update is called once per frame
	void Update () {

	}
}

スクリプトやクラスのヘッダコメントを自動的に付加したい場合などに重宝するでしょう。

テンプレートファイルはUnity自体のシステムファイルを書き換えることになるので、UnityがインストールされているPC全体に影響します。
また、別PCには影響しないので他のPCでも同じようにテンプレートを適用するためには上記操作をPC台数分だけ行う必要があります。

プロジェクトごとに個別にテンプレートを適用する方法はありますが、これはまた別の機会に解説したいと思います。

コーディングスタイルが既に決められている現場などでは自由にテンプレートを設定できるのはありがたいですね。

■参考サイト
Unityのスクリプトテンプレートを変更する | ワンダープラネットエンジニア Blog
テンプレートファイルにカスタムキーワード追加 – けいごのなんとか
C# Script Template – how to make custom changes? – Unity Answers