Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity Game Framework (UGF)

Modular game framework for Unity projects

Status Unity Version C# License

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.

Table of Contents

📋 Requirements

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.

💽 Installation

Option 1: Unity Package Manager (via git URL)

  1. Window -> Package Manager -> + -> Install package from git URL...
  2. Paste repository URL

Option 2: Local clone (for development)

Clone and install via Package Manager -> Install package from disk...

📂 Project Structure

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

🎮 Modules

DataModule

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

📚 Documentation

📝 License

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages