English | 简体中文
A lightweight, modular game framework for Unity that provides common game systems with minimal coupling. Each module can be used independently or composed together for complete game functionality.
| Component | Version | Notes |
|---|---|---|
| Unity | 6.0+ | Tested on Unity 6.0 and newer. Targets .NET Standard 2.1 / C# 9.0. |
| UniTask | 2.5.0+ | Required for async operations. Install via Package Manager or UPM. |
| Addressables | 2.0.0+ | Required for DataModule asset loading and runtime management. |
Option 1: Unity Package Manager (via git URL)
- Window -> Package Manager -> + -> Install package from git URL...
- Paste repository URL
Option 2: Local clone (for development)
Clone and install via Package Manager -> Install package from disk...
UGF/
├── DataModule/ # Configuration data management (Luban tables, Addressables)
│ └── DataManager.cs
├── Runtime/ # Core runtime systems (planned)
├── Editor/ # Editor tools and inspectors (planned)
└── Documentation/ # Architecture docs and API references
Configuration data management system that handles Luban-generated tables via Addressables.
Key Features:
- Load Policies: AlwaysLoaded (on init) / OnDemand (lazy)
- Group Management: Register tables by group, load/unload together
- Query API: Get by ID, GetAll, FindAll with predicates
- Async Loading: UniTask-based with concurrent group loading
- Binary Format: Runtime uses .bytes only for optimal performance
API Overview:
// Initialize at game start
await DataManager.Instance.InitializeAsync();
// Get single entry
var chapter = DataManager.Instance.Get<ChapterData>(101);
// Query with predicate
var unlocked = DataManager.Instance.FindAll<ChapterData>(c => c.IsUnlocked);
// Pre-warm on-demand tables
await DataManager.Instance.EnsureLoadedAsync<WeaponData>();
// Group loading
await DataManager.Instance.LoadGroupAsync("CoreConfig");-> Full DataModule Documentation
- DataModule API Reference
- Architecture Overview (planned)
- Best Practices (planned)
MIT License