---
# System prepended metadata

title: 框架概述

---

# 框架概述

## 檔案架構

- `FrameDemo` 框架使用範例，但大部分專案都直接在這裡面實作  ¯\\_(ツ)_/¯
    - `Scenes` 範例場景
        - `Init` 初始場景，裡面放了啟動器，**框架必須從這個 scene 啟動才能正常運行**
        - `MainUI` 遊戲選單
        - `MainScene` 遊戲主場景
    - `Scripts` 專案的 code
- `GameData` 各式資料，舊版框架會把玩家遊玩的資料放在這裡
    - `ConfigData` 程式啟動的資料
- `Prefabs`
    - `Init`
        - `GameApplication` 實驗室框架啟動器
- `Scripts`
    - `LabFrameRelease` 框架的 code
- `LabDataVisualization` 資料採集相關 (e.g. 呼吸、眼動、腦波, etc.)
- `Standard Assets` 裝了一些 Kinect 的 Api 跟 Utility Code



## 腳本介紹
<!-- ### Singleton -->
#### GameApplication
- Singleton
- 管理框架的生命週期
- Awake: 讀取設定檔並 Init 所有 IGameManager (`ManagerInit()`)

#### GameAudioContoller
- 遊戲音樂、音效控制

#### GameDataManager
- 有關 GameData 都是在這裡管 (除了 ApplicationConfig)

#### GameSceneManager
- 場景管理、切換



### GameEntity
> ？？
#### GameEntityBase
- 代表一個遊戲中的實體
- 遊戲中所用到的物體 (如 Player, Npc, etc.) 這些物體都要繼承此腳本。




### GameEventCenter
- 觸發、接聽事件的地方



### LabTool
- 資料收集、設定讀寫的 function
- `LabTool.GetConfig<T>()`
    - 讀取設定檔
    - 設定檔路徑 `{LabTool.DataPath}/{gameDataPath}/{T}.json`