【Unity】Inspectorで値を変える時、publicとSerializeFieldどっち使う?

スクリプトを書く時に悩む、Inspectorに表示したいフィールドの公開方法。publicなら簡単だけど他のスクリプトからアクセスできちゃうし、[SerializeField]でInspectorに表示するのが無難かなーなんて思いつつ、2つの方法の使い分けを記載。