Skip to content

Latest commit

 

History

History
79 lines (72 loc) · 3.33 KB

Readme.md

File metadata and controls

79 lines (72 loc) · 3.33 KB

Coding


Assets/Script以下でCore, Feature, Main, Servicesの4つのディレクトリに分ける

  • Core: ユーティリティクラス、データクラス、Inputクラスなど
  • Feature: ゲームの機能の実装.
    • Models: データモデル
    • Views: ビュー(Unity上で表示、アタッチされる部分. MonoBehaviourを継承)
    • Presenters: プレゼンター(ビューとモデルの仲介). 具体的な処理を記述
    • Repository: 外部とのデータのやり取りを行う. データの永続化など
    • Common: シーン遷移、ステート遷移など. ゲーム全体で共通する機能
  • Main: ゲームのメイン処理. ゲームの進行を制御する

  • Model, View, Presenterの3つのクラスを使ってMVPパターンを実装する

  • これらに関しては、ファイルが増えたらさらにフォルダを分ける
    Models/PlayerModel.cs -> Models/Player/PlayerModel.cs

  • Presenterは、ViewとModelのインスタンスを持ち、Viewのイベントを受け取り、Modelに処理を依頼する

  • クラス名の命名は気をつける

    • namespaceで分けられているため、クラス名が被ることはないが同名は避ける
    • クラス名は、そのクラスが何をするかがわかるようにする
      • 基本、名詞(or scope)+機能の形式で命名する(Player+Presenter, Root+Installer, Game+InputController)
    • クラス名内で意味の重複がないようにする

tree

Assets/Scripts
├── Core
│   ├── Data
│   │   └── UserData.cs
│   ├── Input
│   │   ├── BaseController.cs
│   │   ├── Generated
│   │   │   └── ActionGuid.cs
│   │   ├── InputActionAccessor.cs
│   │   ├── InputActionAssetProfile.cs
│   │   ├── InputActionEvent.cs
│   │   └── InputActionGenerator.cs // InputActionAssetkからInputActionGuidを生成する
│   └── Utilities
│       ├── BasicUtilities.cs // 便利メソッドをまとめたクラス
│       ├── DebugEx.cs
│       ├── SceneUtility.cs // シーン遷移クラス(SceneLoader)を生成する
│       └── SysEx.cs
├── Feature
│   ├── Common
│   │   ├── Scene
│   │   │   ├── Generated
│   │   │   │   ├── SceneLoader.cs
│   │   │   │   └── Scenes.cs
│   │   │   └── TitleSceneDataModel.cs
│   │   └── State
│   │       ├── GameState.cs
│   │       └── TitleState.cs
│   ├── Models
│   │   └── PlayerModel.cs
│   ├── Presenters
│   │   └── PlayerPresenter.cs
│   ├── Repository
│   │   └── UserRepository.cs
│   └── Views
│       └── PlayerView.cs
├── Interfaces
│   └── ISceneDataModel.cs
├── Main
│   ├── GameController.cs
│   ├── Input
│   │   └── GameInputController.cs // ゲームscene内のユーザー入力を制御する
│   ├── Installer
│   │   ├── MainInstaller.cs
│   │   └── RootInstaller.cs
│   └── RootInstance.cs
└── Services

20 directories, 26 files