Unity ScriptTemplates #1
ScriptTemplates
UnityでC#のコードを生成する際のデフォルトのコードを変更することができる。
デフォルトのスクリプトテンプレートは確認することができ直接変更することもできる。自分の環境(Mac, Unity Hub v.2021.3.6f1) の場合は以下に入っている。
/Applications/Unity/Hub/Editor/2021.3.6f1/Unity.app/Contents/Resources/ScriptTemplates
このディレクトリの中には16個のテキストファイルが入ってる。
この中の81-C# Script-NewBehaviourScript.cs.txt
を除いてみると見たことのあるようなテキストデータとなっている。これがC#のスクリプトを生成した時のテンプレートとして使われている。
using System.Collections; using System.Collections.Generic; using UnityEngine; #ROOTNAMESPACEBEGIN# public class #SCRIPTNAME# : MonoBehaviour { // Start is called before the first frame update void Start() { #NOTRIM# } // Update is called once per frame void Update() { #NOTRIM# } } #ROOTNAMESPACEEND#
ここで出てきた#ROOTNAMESPACEBEGIN#
や#SCRIPTNAME#
などは外部から設定される引数だと考えれば良い。あとで触れていく。
カスタムテンプレート
スクリプトテンプレートの場所が分かり変更することが出来たとしても/Applications/Unity/Hub/Editor/2021.3.6f1/Unity.app/Contents/Resources/ScriptTemplates
のデータを書き換えてしまうと、「そのバージョンを使用している全てのUnityプロジェクトに適用されてしまう」、「複数人開発の時にテンプレートを共有することができない」という問題が生じる。そこでプロジェクトごとのテンプレートを作成する。
何も行わない状態で 右クリック->Create->C# ScriptからC#のスクリプトを生成するとNewBehaviourScriptという名前でいつものStart関数やUpdate関数が書かれたコードが生成される。
生成コードをカスタマイズするためにAssets直下にScriptTemplates
というディレクトリを作成する。そして81-C# Script-NewBehaviourScript.cs.txt
というテキストファイルを作成しよう。
中身は元の/Applications/Unity/Hub/Editor/2021.3.6f1/Unity.app/Contents/Resources/ScriptTemplates
にあった81-C# Script-NewBehaviourScript.cs.txt
にHogeという関数を加えておく。
using System.Collections; using System.Collections.Generic; using UnityEngine; #ROOTNAMESPACEBEGIN# public class #SCRIPTNAME# : MonoBehaviour { // Start is called before the first frame update void Start() { #NOTRIM# } // Update is called once per frame void Update() { #NOTRIM# } void Hoge() { #NOTRIM# } } #ROOTNAMESPACEEND#
作成したらUnityに読み込ませるため(?) に一度Unityのエディタを再起動する。その後右クリック->Create->C#ScriptからC#のコードを生成すると、Hoge関数が実装されたものが生成される。 Assets以下のScriptTemplatesの中身を変えることで自由にカスタマイズが可能となる。Update関数たくさんあったら怖いよね。。デフォルトからは消してしまおう。など。。