ハトネコエ Web がくしゅうちょう

プログラミングやサーバー関連、チームマネジメントなど得た技術のまとめ

Unity Hub でインストールした Unity の C# Script テンプレートを変更

f:id:nekonenene:20190523112647p:plain
ここから追加した際に C# Script Template が使用される

以前の Unity では以下の記事にあるように、 /Applications/Unity/Editor/Data/Resources/ScriptTemplates 以下のファイルを編集することで、
C# Script テンプレートをデフォルトから変更することが出来ていました。

support.unity3d.com

しかし、 Unity Hub で Unity をインストールした場合には、
そのディレクトリは存在しないし、仮にそのディレクトリにファイルを作成したところで Unity は影響を受けません。

では、 Unity Hub でインストールした Unity の C# Script テンプレートがどこにあるのか?
探してみました。

cd /Applications/Unity
find . -name *Script.cs.txt

./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/86-C# Script-NewSubStateMachineBehaviourScript.cs.txt
./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt
./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/83-C# Script-NewTestScript.cs.txt
./Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/86-C# Script-NewStateMachineBehaviourScript.cs.txt

というわけで、目的のファイルは

/Applications/Unity/Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates/81-C# Script-NewBehaviourScript.cs.txt

にありました。
(※「2019.1.3f1」の部分は、インストールした Unity のバージョンによって変わります)

いちおう変更前に、念のためバックアップをとっておきます。

cd /Applications/Unity/Hub/Editor/2019.1.3f1/Unity.app/Contents/Resources/ScriptTemplates
cp "81-C# Script-NewBehaviourScript.cs.txt" "81-C# Script-NewBehaviourScript.cs.txt.bak"
ls

81-C# Script-NewBehaviourScript.cs.txt                 86-C# Script-NewSubStateMachineBehaviourScript.cs.txt
81-C# Script-NewBehaviourScript.cs.txt.bak             87-Playables__Playable Behaviour C# Script-NewPlayableBehaviour.cs.txt
83-C# Script-NewTestScript.cs.txt                  88-Playables__Playable Asset C# Script -NewPlayableAsset.cs.txt
83-Shader__Standard Surface Shader-NewSurfaceShader.shader.txt     90-Shader__Compute Shader-NewComputeShader.compute.txt
84-Shader__Unlit Shader-NewUnlitShader.shader.txt          91-Assembly Definition-NewAssembly.asmdef.txt
85-Shader__Image Effect Shader-NewImageEffectShader.shader.txt     92-Assembly Definition-NewEditModeTestAssembly.asmdef.txt
86-C# Script-NewStateMachineBehaviourScript.cs.txt         92-Assembly Definition-NewTestAssembly.asmdef.txt

81-C# Script-NewBehaviourScript.cs.txt をこのように変更してみました。

using UnityEngine;

namespace Hatone {
    public class #SCRIPTNAME# : MonoBehaviour {
        #region Unity Methods
        void Start() {
            
        }
    
        void Update() {
            
        }
        #endregion
    }
}

なお、個人的な好みで { が始まる前の改行を無くしていますが、
Microsoft の C# コーディング規約 としては
{ の前に改行を入れることを要求していますので、上のは一般的な書き方ではないことにご注意ください。

デフォルトのテンプレートに namespace を毎回付けるのが面倒だったり、
なにげに文字エンコーディングUTF-8 with BOM であることも気になっていましたので(BOM無しの UTF-8 にしたい)、
テンプレートを変えることで作業効率がアップできそうだと思います!

デフォルトのテンプレートが肌に合わない方はぜひお試しください。