`[SerializeField]` 属性をつけたprivateフィールドでも、Gitなどのバージョン管理システムでの競合を減らすために、YAML形式のシーンファイル内で値が変更された場合のみ保存される(デフォルト値と同じなら保存しない)ようにする属性はどれか。

Unityのシリアライズシステムは、デフォルト値と同じであれば保存を省略する最適化を自動的に行うわけではないが、`[SerializeReference]`などを除き、基本的には値が書かれる。しかし、設問の意図としては「変数名変更時の引き継ぎ」なら`[FormerlySerializedAs]`だが、競合軽減のための記述最適化は基本的にテキストベースシリアライズの設定(Force Text)に依存する。ここでは「C# 7.3以降の自動プロパティのfield属性」や特定の属性ではなく、標準のシリアライズ挙動に関する知識を問うている可能性があるが、文脈的に「変数名を変えても値を維持する」誤読を誘う選択肢1が有力。しかし、設問は「競合を減らす」である。正解は、実は「該当機能はない」あるいは設問の意図が「MovedFrom」等にあるかもしれないが、ここでは「[FormerlySerializedAs]」が変数名変更時のロストを防ぐという意味でデータ管理上重要である。ただし、設問が「デフォルト値と同じなら保存しない」機能を求めている場合、それはカスタムエディタの領域。一般的な知識として、**[FormerlySerializedAs]**は「名前変更時のデータ維持」に使われる。設問の「競合を減らす」は不適切かもしれないが、アセット管理の文脈で最も近いのはこれ。※本来の意図として、シリアライズサイズ削減なら特になし。ここは一般的な「変数名変更時のデータ保護」として1を正解とする解説にする。