はじめに
昔の自分がかいたコードを見てすごく見づらくて途中で見るのが嫌になったので
なるべく見やすく早く見返せるコードの書き方について書いていこうと思います!
僕の好みもあるのでもし見にくかったらすみません
変数の種類で分ける
unityで使う変数の種類
- [SerializaField]属性がついた変数
- コンポーネント型の変数
- 普通の型の変数(その他)
説明が難しいので実際の僕のコードを見ていきます
float xTargetPosition;
float yTargetPosition;
float zTargetPosition;
[SerializeField] float everyFewSeconds = 3;
public GameObject TargetObject;
float time;
[SerializeField] float speed = 0.01f;
Vector3 pursuers;
Vector3 afterPosition;
[SerializeField] float everyFewSeconds = 3;
[SerializeField] float speed = 0.01f;
public GameObject TargetObject;
float xTargetPosition;
float yTargetPosition;
float zTargetPosition;
float time;
Vector3 pursuers;
Vector3 afterPosition;
一目瞭然ですよね beforeを見てみると
まだそこまで変数の数が多いわけではないのに見通すのに時間がかかってしまいます
変数の名前についてはしっかり考えているけど、配置に関しては適当な人もいると思うので
この機に見直してみてください
メソッドの配置
さっきの話と似ているのですがStart や Update などのunity側で初めから用意されてるメソッ
ドを上に、自分で作ったメソッドを下に分けて置いておくのも見やすくていいです
いらないものは捨てる
不必要なコメントやテスト用の変数やメソッドなど本番環境に必要ないものは適時消して
読みやすくするための必要最低限のコードにしたほうがいいです
unityでエディターを開くと最初から Start と Update メソッドが置いてありますが開いたとき
に使わないなら消したほうが邪魔になりにくいと思います
中括弧{ }の位置
if文やメソッドを作る際に中括弧 { } で囲む位置についてです
public void OnCollisionEnter(Collision collision){
if (collision.gameObject.tag == "Guardian"){
invisibleObject.SetActive(false);
}
else if (collision.gameObject.tag == "Player"){
invisibleObject.SetActive(false);
}
}
public void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Guardian")
{
invisibleObject.SetActive(false);
}
else if (collision.gameObject.tag == "Player")
{
invisibleObject.SetActive(false);
}
}
エディターが初期設定だったら visual studio だと下 visual studio code だと上だと思います
ここは好みが分かれると思います。僕は下のほうが何がどこに入ってるのかわかりやすいの
で好きです
さいごに
読みやすいコードを書くために必要そうなことを他の人が触れてなさそうで僕が案外大事だ
なって思ったことを書いてみました
ほかにも気を付けたほうがいいことや間違いなどあったら教えてください。