C#のインデントはデフォルトで4っぽい
最近Unityで遊び始めました。
C#スクリプトのコーディングをする際はVSCodeを使用しています。
私はVSCodeの設定にてインデント数を2に設定しているのですが、Unityから作成したC#スクリプトはデフォルトのインデント数が4になっていました。
C#では4を用いるのが一般的…なんでしょうか?
とにかく私は2が好みでしたので、一度Shift+Tabで全てのインデントを消し、Tabでもう一度インデントを空けたところ…
なぜか4のインデントがされる…なぜ?
仕方ないのでファイルを一回消して、VSCode上から作り直したC#スクリプトから書き直しました。VSCodeから作成した同じ名前のC#スクリプトでは、無事にVSCodeの設定が適用されているようで、インデント数は2で書くことができました。
いちいちVSCode上で新規C#ファイルを作成し、本来なら自動生成されるはずのScriptテンプレートも手打ちしていくのは面倒。しかしインデント4はなんか嫌だなぁ…できれば変更したい。
スクリプトテンプレート
生成された瞬間のインデント数を変えられないかな~と調べたところ、以下の記事を見つけました。
UnityEditorのインストールディレクトリ(Windowsの場合C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
)内にある、81-C# Script-NewBehaviourScript.cs.txt
を変更すれば良いらしいです。
他のスクリプトテンプレートも自由に変更できるようですが、Assetsの作成でC#スクリプトを追加している分にはこの81
だけ変えれば良いっぽいですね。
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#
たしかに4文字インデントになっています。
以下のような2文字インデントに変えちゃいましょう。
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#
保存してもう一度UnityからC#スクリプトを作成してみます。
VSCodeで開いたところ、無事にインデント数を2にして編集できるようになっていました。
こんなことしてるけど正しいのか?
VSCode上で「開いたファイルのインデント数に合わせて空気を読む」みたいな設定がありそうだなぁ~とは思いつつ、それを変更すると他の場面で面倒なことになりそうだなぁ~とか考えてやりませんでした。
そもそもJavaとかC#みたいなのはインデント数4でやるのがお作法なんでしょうか??
見にくい気がして私は嫌なんですよね、4って。