【Unity】フォルダの構成例

2024年10月17日

Unityでのプロジェクト管理におけるフォルダ構成は、整理された開発プロセスを支える重要な要素です。プロジェクトの規模やチームの好みによって異なる場合がありますが、一般的に推奨されるフォルダ構成のガイドラインを以下に示します。

基本的なフォルダ構成

  • Assets: すべてのアセットファイル(スクリプト、モデル、テクスチャなど)を含むメインフォルダ。
  • Animations: アニメーションクリップやアニメーターコントローラーなど、アニメーションに関連するファイル。
  • Audio: 音楽トラックやサウンドエフェクトファイル。
  • Materials: マテリアルとシェーダー。
  • Models: 3Dモデルやアニメーションリグ。
  • Prefabs: ゲームオブジェクトのプレハブ。
  • Scenes: ゲームのシーンファイル。
  • Scripts: C#スクリプトなどのプログラムファイル。
  • Textures: 画像ファイルやテクスチャ。

特定目的のフォルダ

基本的なフォルダ構成に加えて、特定の機能や要件に応じて以下のフォルダを使用します。これらのフォルダは、プロジェクトのニーズに応じて必須となる場合があります。

  • Editor: エディタ拡張機能用のスクリプトやアセット。カスタムエディタツールを作成する際に使用します。例えば、インスペクターのカスタマイズやエディタウィンドウの追加などに利用されます。
  Assets/
    Editor/
      CustomInspector.cs
      EditorWindow.cs
  • Plugins: 外部プラグインやライブラリ。サードパーティ製のアセットや独自に開発したプラグインを格納します。これにより、外部のコードや機能をプロジェクトに統合しやすくなります。
  Assets/
    Plugins/
      Newtonsoft.Json.dll
      CustomPlugin/
        PluginScript.cs
  • Resources: 実行時に動的にロードする必要があるアセット。Resources.Loadを使用してアクセスしますが、使用にはパフォーマンスやビルドサイズへの影響を考慮する必要があります。必要最低限の使用が推奨されます。
  Assets/
    Resources/
      Prefabs/
        Enemy.prefab
      Materials/
        DynamicMaterial.mat
  • StreamingAssets: アセットの中で直接アクセスされるファイル。ビデオファイルや外部データベースなど、ゲーム外部からアクセスする必要があるデータを格納します。これらのファイルはビルド後もそのままの形式で保持され、ランタイムで読み取ることが可能です。
  Assets/
    StreamingAssets/
      Videos/
        Intro.mp4
      Data/
        ExternalData.json

プロジェクトの規模に応じた構成

小規模から中規模のプロジェクトでは、上記の基本的なフォルダ構成が適しています。しかし、プロジェクトの規模が大きくなると、より詳細なサブフォルダの分類が必要になることがあります。例えば、Scriptsフォルダ内に以下のようなサブフォルダを設けると、ファイル管理がより簡単になります。

  • Controllers: ゲームロジックやキャラクターの制御に関連するスクリプト。
  • Managers: ゲーム全体の管理やサービスに関連するスクリプト(例:GameManager、AudioManager)。
  • UI: ユーザーインターフェースに関連するスクリプト。
  • Gameplay: ゲームプレイに直接関わるスクリプト。
Assets/
  Scripts/
    Controllers/
      PlayerController.cs
      EnemyController.cs
    Managers/
      GameManager.cs
      AudioManager.cs
    UI/
      UIManager.cs
    Gameplay/
      CombatSystem.cs
      InventorySystem.cs

チームでの開発

チームで開発する場合は、命名規則やフォルダ構造について事前に合意しておくことが重要です。これにより、プロジェクトの可読性と管理のしやすさが向上します。また、Assetsフォルダ内で機能ごとにフォルダを分けることで、チームメンバー間での作業の衝突を減らすことができます。


Unityのフォルダ構成は、プロジェクトのニーズに応じて柔軟に調整することが可能です。しかし、整理されたフォルダ構造を維持することで、開発プロセスがスムーズになり、将来的な拡張やメンテナンスが容易になることを忘れないでください。

Unity

Posted by hidepon