mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
- 将描述从英文改为中文,突出框架的游戏开发定位 - 添加base路径配置以支持GitHub Pages部署 - 重构导航菜单,提供更清晰的文档分类 - 创建详细的侧边栏结构,涵盖入门指南、核心框架、游戏模块等内容 - 更新首页Hero区域,添加框架Logo和现代化功能介绍 - 移除默认示例页面,替换为实际的框架文档 - 添加页脚版权信息和Apache许可证声明 - 创建核心框架、游戏模块和Godot集成的概览文档 - 添加入门指南,包括安装配置、快速开始和架构概览 - 实现完整的多层级文档导航和内容组织
4.6 KiB
4.6 KiB
Godot 集成概览
GFramework.Godot 提供与 Godot 引擎的深度集成,让开发者能够在保持框架架构优势的同时,充分利用 Godot 的强大功能。
核心特性
🎮 Godot 深度集成
- 架构生命周期绑定 - 自动同步框架和 Godot 节点生命周期
- 丰富的 Node 扩展 - 50+ 个实用的节点扩展方法
- 类型安全信号 - 强类型的信号连接和处理
- 高效对象池 - 专门的 Node 对象池系统
🔧 开发者友好
- 零配置集成 - 简单的安装和配置过程
- 流畅的 API - 链式调用和现代 C# 语法
- 自动清理 - 智能的资源和事件监听器管理
- 调试支持 - 完善的日志和调试工具
核心组件
架构集成
- AbstractArchitecture - Godot 架构基类
- AbstractGodotModule - Godot 模块基类
- NodeController - 节点控制器基类
节点扩展
- NodeExtensions - 节点扩展方法
- SignalBuilder - 信号构建器
- AsyncExtensions - 异步扩展
对象池系统
- AbstractNodePoolSystem - 节点池基类
- NodePoolManager - 节点池管理器
- PoolableObject - 可池化对象接口
日志系统
- GodotLogger - Godot 集成日志
- LoggerFactory - 日志工厂
- Log Attributes - 日志特性
使用场景
Godot 模块适用于所有使用 Godot 引擎的项目:
- 2D 游戏 - 平台游戏、RPG、策略游戏
- 3D 游戏 - 动作游戏、射击游戏、模拟游戏
- 工具应用 - 编辑器、可视化工具
- 原型开发 - 快速游戏原型制作
安装要求
# 需要安装 Core 和 Game 模块
dotnet add package GeWuYou.GFramework.Core
dotnet add package GeWuYou.GFramework.Game
dotnet add package GeWuYou.GFramework.Godot
# 需要 Godot 4.5+ 版本
快速示例
using GFramework.Godot.architecture;
using GFramework.Godot.extensions;
[ContextAware]
[Log]
public partial class PlayerController : CharacterBody2D, IController
{
private PlayerModel _playerModel;
public override void _Ready()
{
_playerModel = Context.GetModel<PlayerModel>();
// 安全的节点操作
var healthBar = GetNodeX<ProgressBar>("UI/HealthBar");
// 类型安全的信号连接
this.CreateSignalBuilder(Button.SignalName.Pressed)
.UnRegisterWhenNodeExitTree(this)
.Connect(OnButtonPressed);
// 响应式数据绑定
_playerModel.Health.Register(OnHealthChanged)
.UnRegisterWhenNodeExitTree(this);
}
private void OnButtonPressed()
{
Context.SendCommand(new AttackCommand());
}
private void OnHealthChanged(int newHealth)
{
// 自动更新 UI
var healthBar = GetNode<ProgressBar>("UI/HealthBar");
healthBar.Value = newHealth;
}
}
学习路径
建议按以下顺序学习 Godot 集成:
与其它模块的关系
GFramework.Core (基础架构)
↓
GFramework.Game (游戏功能)
↓
GFramework.Godot (Godot 集成)
Godot 模块建立在 Core 和 Game 模块之上,提供与 Godot 引擎的无缝集成。
性能特点
- 零额外开销 - 扩展方法编译时优化
- 内存安全 - 自动资源管理和清理
- 类型安全 - 编译时类型检查
- 异步支持 - 完善的异步操作支持
常见用法
节点安全操作
// 安全获取节点
var player = GetNodeX<Player>("Player");
var child = FindChildX<HealthBar>("HealthBar");
// 安全添加子节点
AddChildX(bullet);
信号处理
// 流畅的信号连接
this.CreateSignalBuilder(Timer.SignalName.Timeout)
.WithFlags(ConnectFlags.OneShot)
.Connect(OnTimeout)
.UnRegisterWhenNodeExitTree(this);
异步操作
// 等待信号
await ToSignal(this, SignalName.Ready);
// 等待条件
await WaitUntil(() => IsReady);