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

## 目標
アクセス修飾子も、名前空間もままならないファイルが標準なのは不便極まりないので変更します。
MacOSだと従来の検索方法が効かなかったのでここで共有します。


## 手順
1) 該当ファイルを探す
2) 編集する

# 1. 該当ファイルを探す
Terminalで以下のコードを実行する
```bash:ScriptTemplatesフォルダを検索
find /Applications -type d -name "ScriptTemplates"
```
こんなのが見えてきたら、Ctl+Cで実行を中断。今使用しているバージョンが載っている行をコピーする。筆者の場合であれば上から3番目のUnity6を示すもの。
```bash
/Applications/Unity/Hub/Editor/2022.3.44f1/Unity.app/Contents/Resources/ScriptTemplates
/Applications/Unity/Hub/Editor/2021.3.11f1/Unity.app/Contents/Resources/ScriptTemplates
/Applications/Unity/Hub/Editor/6000.0.46f1/Unity.app/Contents/Resources/ScriptTemplates
/Applications/Unity/Hub/Editor/2020.1.2f1/Unity.app/Contents/Resources/ScriptTemplates
```
該当フォルダに移動する。二行目のcdの後は上記の結果に合わせて変えましょう。
```bash:移動+ファイル表示コマンド
cd ~
cd/Applications/Unity/Hub/Editor/6000.0.46f1/Unity.app/Contents/Resources/ScriptTemplates
ls
```
これでこんなのが表示されたら成功です。
```
1-Scripting__MonoBehaviour Script-NewMonoBehaviourScript.cs.txt
1-Scripting__Playables__Playable Behaviour Script-NewPlayableBehaviour.cs.txt
1-Shader__Standard Surface Shader-NewSurfaceShader.shader.txt
103-Scene__Scene Template Pipeline-NewSceneTemplatePipeline.cs.txt
2-Scripting__Playables__Playable Asset Script-NewPlayableAsset.cs.txt
2-Scripting__ScriptableObject Script-NewScriptableObjectScript.cs.txt
2-Shader__Unlit Shader-NewUnlitShader.shader.txt
20-Scripting__Assembly Definition-NewEditModeTestAssembly.asmdef.txt
21-Scripting__Assembly Definition-NewTestAssembly.asmdef.txt
22-Scripting__Assembly Definition-NewAssembly.asmdef.txt
23-Scripting__Assembly Definition Reference-NewAssemblyReference.asmref.txt
3-Scripting__Empty C# Script-NewEmptyCSharpScript.cs.txt
3-Scripting__MonoBehaviour Script-NewTestScript.cs.txt
3-Shader__Image Effect Shader-NewImageEffectShader.shader.txt
4-Shader__Compute Shader-NewComputeShader.compute.txt
5-Shader__Ray Tracing Shader-NewRayTracingShader.raytrace.txt
6-Scripting__MonoBehaviour Script-NewStateMachineBehaviourScript.cs.txt
6-Scripting__MonoBehaviour Script-NewSubStateMachineBehaviourScript.cs.txt
```
お察しの通り、このファイルを元に生成されているので、ここを好きに編集しましょう。
```
1-Scripting__MonoBehaviour Script-NewMonoBehaviourScript.cs.txt
```
他にもいくつかテンプレがあります。筆者はMonobehaviorスクリプトのみ変更します。他は範疇外です。各自で調べて、コメント欄での共有をお待ちしています。

# 2. 編集する

該当ファイルを開けてみるとこんなのが表示されます。
```text:1-Scripting__MonoBehaviour Script-NewMonoBehaviourScript.cs.txt
using UnityEngine;

    #ROOTNAMESPACEBEGIN#
public class #SCRIPTNAME# : MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        #NOTRIM#
    }

    // Update is called once per frame
    void Update()
    {
        #NOTRIM#
    }
}
#ROOTNAMESPACEEND#
```
ここで魔改造をします。

```text
/*
 * Copyright (c) DeepNapEngine
 * https://github.com/TrueRyoB
 */
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

#ROOTNAMESPACEBEGIN#
    /// <summary>
    /// 
    /// </summary>
    public class #SCRIPTNAME# : MonoBehaviour
    {

    }
#ROOTNAMESPACEEND#
```
筆者は好みに合わせ、こうしました。軽く説明をすると、#で囲まれたものは自動的に置換されます。この変更を適用します。
1) 先ほどのディレクトリに移動/いるか確認(pwd)
2) 筆者のコードをコピペする
3) vimでもなんでも使ってファイルを開け、書き換える
一応下記該当コードです。
```bash:現在地確認
pwd
```
```bash:移動+vimでファイル開ける
cd ~
cd/Applications/Unity/Hub/Editor/6000.0.46f1/Unity.app/Contents/Resources/ScriptTemplates
vim "1-Scripting__MonoBehaviour Script-NewMonoBehaviourScript.cs.txt"
```

```bash:書き換える (一行ずつ指示に従う)
(ファイル下に矢印キーで全力移動)
999999
i
(delキー)
(escキー)
(全選択して消去　→ 筆者のコードをペースト)
(escキー)
:wq
```
これで書き換えが完了しました。

### ファイル作成前に...
Root namespaceという設定をしなければいい感じに名前空間は反映されません。それをしましょう。
Edit > Project Settings... > Editorで語彙を検索したら出てきます。それを変更しましょう。筆者の開発ゲーム名にしていますが、お好みのものにしましょう。

![editor screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4049858/727cc31e-431e-4260-8f10-0f81e4f9f5ec.png)

これで終わりです。

### お疲れ様でした。
フォローよろしくです