模块化 · 高性能 · 易扩展
专为 Unity 游戏开发设计的企业级模块化框架
提供完整的游戏开发解决方案,让开发更简单、更高效
using UFrame;
public class GameManager : Singleton<GameManager>
{
protected override void OnInitialize()
{
// 初始化游戏系统
UIManager.Instance.Initialize();
AudioManager.Instance.Initialize();
NetworkManager.Instance.Connect();
}
}
分层设计,职责清晰,易于维护和扩展
Application Layer
游戏逻辑BridgeUI System
界面管理Business Logic
NetSocket
TCP/UDPAssetBundles
热更新Foundation & Manage
50+ 个功能模块,涵盖游戏开发的方方面面
强大的功能特性,助力游戏开发
双重检查锁定机制确保单例模式的线程安全,支持多线程环境下的稳定运行
对象池、资源管理、异步加载等优化策略,确保游戏流畅运行
灵活的优先级系统,精确控制模块初始化和更新顺序
完整的生命周期钩子,自动化资源管理,避免内存泄漏
松耦合的模块化架构,按需引入,易于扩展和维护
丰富的编辑器工具,提升开发效率,简化开发流程
简洁的 API 设计,快速上手
// 创建单例管理器
public class AudioManager : Singleton<AudioManager>
{
protected override void OnInitialize()
{
// 初始化音频系统
LoadAudioResources();
}
public void PlayMusic(AudioClip clip)
{
// 播放背景音乐
musicSource.Play(clip);
}
}
// 使用方式
AudioManager.Instance.PlayMusic(bgMusic);
// 打开 UI 面板
UIFacade.Instance.Open("MainMenu");
// 传递数据
UIFacade.Instance.Open("GameUI", new {
playerName = "Player1",
level = 10
});
// 关闭面板
UIFacade.Instance.Close("MainMenu");
// 创建自定义行为节点
[NodePath("AI/攻击敌人")]
public class AttackNode : ActionNode
{
protected override byte OnUpdate()
{
var enemy = FindNearestEnemy();
if (enemy != null)
{
enemy.TakeDamage(damage);
return Status.Success;
}
return Status.Failure;
}
}
// 定义数据包
[Packet(0x1001)]
public class LoginPacket : IPacket
{
public string username;
public string password;
}
// 连接服务器
var client = new SocketClientBuilder()
.ConfigureServices(services =>
{
services.AddPacketHandler<LoginPacket>();
})
.Build();
session = await client.ConnectAsync("127.0.0.1", 8080);
详细的文档和示例帮助你快速上手