GameFrameX UI FairyGUI 是一個 Unity UI 適配器,將 FairyGUI 框架封裝到 GameFrameX 模組化遊戲框架中。它提供了完整的 UI 生命週期管理(開啟/關閉/回收/動畫),並透過 YooAsset 實現非同步資源載入。
- 完整 UI 生命週期 — 透過統一 API 實現介面的開啟、關閉、回收和動畫
- 非同步資源載入 — 基於 YooAsset 的 FairyGUI 包和資源非同步載入
- 物件池復用 — UI 介面實例被池化復用,最小化 GC 分配
- 單例去重 — 自動防止重複建立同一介面
- 載入佇列 — 合併對同一介面的並行開啟請求
- 屬性驅動配置 — 透過 C# 特性控制 UI 分組、顯示/隱藏動畫
- MVVM 繫結支援 — 透過
BindablePropertyExtension自動清理繫結屬性事件 - 雙模式資源載入 — 同時支援
Resources.Load和 YooAsset AssetBundle 載入 - IL2CPP 安全 — Preserve 特性防止 IL2CPP 建置時程式碼裁剪
┌─────────────────────────────────────────────┐
│ 你的 UI 面板 (FUI) │
├─────────────────────────────────────────────┤
│ UIManager │
│ (開啟 / 關閉 / 回收 / 載入佇列) │
├──────────┬──────────┬───────────────────────┤
│ FormHelper│UIGroup │ PackageComponent │
│ (建立/ │Helper │ (新增包 / │
│ 釋放) │(深度) │ 移除包) │
├──────────┴──────────┴───────────────────────┤
│ FairyGUI Runtime + YooAsset │
└─────────────────────────────────────────────┘
| 元件 | 描述 |
|---|---|
UIManager |
核心 UI 管理器,處理開啟/關閉/回收生命週期 |
FUI |
所有 FairyGUI 面板的基底類別 — 繼承此類別建立介面 |
FairyGUIPackageComponent |
MonoBehaviour,管理 FairyGUI 包的載入/卸載 |
FairyGUIFormHelper |
處理介面的實例化、建立和釋放 |
FairyGUIUIGroupHelper |
管理 UI 分組深度和層級 |
FairyGUILoadAsyncResourceHelper |
將 FairyGUI 資源請求橋接到 YooAsset |
FairyGUIPathFinderHelper |
基於路徑的 GObject 查找工具 |
編輯 Unity 專案的 Packages/manifest.json,添加 scopedRegistries 部分:
{
"scopedRegistries": [
{
"name": "GameFrameX",
"url": "https://gameframex.upm.alianblank.uk",
"scopes": [
"com.gameframex"
]
}
]
}scopes 控制哪些套件透過此註冊表解析。只有以 com.gameframex 開頭的套件才會從這個註冊表取得。
Then add the package to dependencies:
{
"dependencies": {
"com.gameframex.unity.ui.fairygui": "3.3.2"
}
}使用特性配置動畫:
[OptionUIShowAnimation(typeof(FadeInAnimation))]
[OptionUIHideAnimation(typeof(FadeOutAnimation))]
public class AnimatedPanel : FUI { }// 取得 GObject 的層級路徑
string path = gObject.GetUIPath();
// 透過路徑解析 GObject
GObject obj = FairyGUIPathFinderHelper.GetUIFromPath("GRoot/Group/MyButton");// GObject 銷毀時自動註銷事件
myProperty.ClearWithGObjectDestroyed(gObject);| 平台 | 支援 |
|---|---|
| Android | ✅ |
| iOS | ✅ |
| Windows | ✅ |
| macOS | ✅ |
| WebGL | ✅ |
最低 Unity 版本:2019.4
- QQ群:612311526
- GitHub Issues:提交 Bug
- 作者:Blank (alianblank@outlook.com)
詳見 CHANGELOG.md。
詳見 LICENSE.md 檔案。
