[SerializeField]属性を変数の前に書くのは、なぜ?
public には、自動的に [SerializeField] が付きます。しかし、Inspector 以外からも変更ができてしまうため、Inspectorのみ変更ができるよう privateに[SerializeField]を付けます。[SerializeField]は、Inspectorで、変更していいよの印でもある。
[SerializeField] の付いた変数は、実行中も変更できます。ただし、停止すると値は、戻ってしまうので、注意が必要。