D日記

モーションアーティストの技術ブログだよ。日常も書くよ。

MENU

Unity6のProjectSettingsとSettingsフォルダ、なぜ分ける必要があるのか問題


🧠「設定」って名前多すぎない?問題

Unityプロジェクトを開くと、フォルダの中にProjectSettingsSettingsという、
どっちも“設定っぽい名前”のやつがいて困惑した経験、ないですか?

「お前らどっちが親でどっちが子なんだ…?」

というわけで今回は、「なぜこの2つの設定フォルダが分かれているのか」を解説します。
意外と知られてないけど、役割も管理方針もまったく違うんですよコレ。


🏢 ProjectSettingsは社長。Unity全体を牛耳ってる

まずProjectSettings。この子はUnityのエディタでおなじみ、

Edit > Project Settings

からアクセスできる、いわば「プロジェクト全体の総本山」

何が入ってるの?

  • ビルド設定(どのシーンを含めるか)
  • グラフィック設定(URPとかHDRPとか)
  • 入力設定(古いInputManager系)
  • プラットフォーム設定(iOS用の設定とか)
  • その他、全体に影響するヤツら

特徴

  • Unityが自動管理してくれる(=手動編集は非推奨)
  • .assetファイルで構成されてるけど、Gitで差分見ても結構カオス
  • 他のプロジェクトに使い回すのはあまり向いてない

🧰 Settingsフォルダは現場のリーダーたち

次にSettingsフォルダ。これはプロジェクトの中にあるカスタム設定たちの集まりです。

自作のScriptableObject設定とか、Input Systemのアクションファイルとか。

具体例

  • InputSystem.inputactions:新しい入力システムの設定
  • MyRenderPipelineAsset.asset:URPとかのカスタムレンダリング設定
  • PostProcessProfile.asset:ポストエフェクト用の設定
  • SceneA_Profile.asset:シーンごとの専用設定

特徴

  • ユーザーが自由に作る&管理する
  • 必要に応じて分割・再利用しやすい
  • バージョン管理しやすい(差分が明確)

🧠 なんで分ける必要があるの?

ここが今回の本題!

✅ スコープ(影響範囲)が違う

  • ProjectSettingsプロジェクト全体に影響
  • Settings個別シーンやシステムに限定

✅ 柔軟性が違う

  • Settingsはチームやプラットフォームごとに好きに作って運用OK
  • ProjectSettingsはUnityの仕様に従う必要アリ

✅ Gitでの扱いやすさが違う

  • ProjectSettingsは変更差分が多く、意図せずコンフリクトしがち
  • Settingsは変更した人が明確で、バージョン管理と相性◎

✅ 再利用性も違う

  • Settingsの中身は、コピペで他プロジェクトに持っていける
  • ProjectSettingsはプロジェクト全体との整合性が必要なので微妙

✅ 結論:住み分けは大事!

まとめると…

ProjectSettings = プロジェクト全体を管理するUnityの中枢機関
Settings = 特定機能・目的のための現場設定

という住み分けがされています。
Git管理やチーム開発をするうえでも、この構造を理解しておくとストレス減りますよ!