# 基础教程：从零开始使用 GFramework

欢迎来到 GFramework 的基础教程！本教程将带你从零开始，创建一个完整的计数器应用，逐步掌握 GFramework 的核心概念和最佳实践。

## 📚 教程概述

通过本教程，你将：

- 搭建完整的开发环境
- 创建一个基于 Godot 的项目并集成 GFramework
- 从基础实现到架构优化，体验完整的重构过程
- 理解 Model、Command、System、Utility 等核心概念
- 掌握事件驱动架构的设计思想

## 🎯 学习目标

完成本教程后，你将能够：

- ✅ 搭建 GFramework 开发环境
- ✅ 使用 GFramework 构建清晰的应用架构
- ✅ 理解并应用 MVC 架构模式
- ✅ 使用命令系统解耦业务逻辑
- ✅ 通过事件系统实现组件通信
- ✅ 合理使用 Utility 和 System 层

## ⏱️ 预计学习时间

- **快速浏览**：30 分钟
- **完整实践**：2-3 小时
- **深入理解**：4-6 小时

## 📋 前置知识要求

### 必需

- C# 基础语法
- 面向对象编程概念
- 基本的命令行操作

### 推荐

- Godot 引擎基础（了解节点系统即可）
- MVC 架构基础概念
- 依赖注入的基本理解

## 📖 教程章节

### [1. 环境准备](./01-environment.md)

搭建 GFramework 开发环境，包括 .NET SDK 和 Godot 引擎的安装配置。

**关键内容**：

- 系统要求检查
- .NET SDK 安装
- Godot 引擎配置
- 环境验证

**预计时间**：15-30 分钟

---

### [2. 项目创建与初始化](./02-project-setup.md)

创建 Godot 项目，引入 GFramework，并搭建基础架构。

**关键内容**：

- 创建 Godot 项目
- 引入 GFramework NuGet 包
- 定义游戏架构类
- 创建三大模块（Model、System、Utility）
- 配置游戏入口点

**预计时间**：30-45 分钟

---

### [3. 基础计数器实现](./03-counter-basic.md)

实现一个简单的计数器功能，了解传统实现方式的问题。

**关键内容**：

- 搭建 UI 场景
- 实现基础计数器功能
- 分析代码中的耦合问题
- 理解为什么需要架构优化

**预计时间**：20-30 分钟

---

### [4. 引入 Model 重构](./04-model-refactor.md)

将数据状态抽离到 Model 层，引入事件系统实现数据驱动。

**关键内容**：

- 创建 Model 接口和实现
- 注册 Model 到架构
- 使用事件系统更新 UI
- 对比重构前后的改进

**预计时间**：30-40 分钟

---

### [5. 命令系统优化](./05-command-system.md)

使用 Command 模式解耦交互逻辑，让 Controller 更加清晰。

**关键内容**：

- 创建增减计数命令
- 重构 Controller 使用命令
- 理解 Command 的职责边界
- 对比直接调用的优缺点

**预计时间**：30-40 分钟

---

### [6. Utility 与 System](./06-utility-system.md)

引入 Utility 处理业务规则，使用 System 响应状态变化。

**关键内容**：

- 实现计数限制 Utility
- 创建阈值检查 System
- 理解各层的职责分工
- 完整架构总结

**预计时间**：40-50 分钟

---

### [7. 总结与最佳实践](./07-summary.md)

回顾整个架构设计，总结最佳实践和常见问题。

**关键内容**：

- 各层职责对照表
- 设计原则总结
- 常见问题 FAQ
- 下一步学习建议

**预计时间**：15-20 分钟

---

## 🚀 快速开始

如果你已经熟悉基础概念，可以：

1. **只想看最终效果**：直接跳到 [第 6 章](./06-utility-system.md) 查看完整架构
2. **已有 Godot 项目**：从 [第 2 章](./02-project-setup.md) 开始集成 GFramework
3. **想快速上手**：按顺序完成 [第 2-4 章](./02-project-setup.md)，掌握核心用法

## 💡 学习建议

- **边学边做**：每个章节都包含完整代码，建议跟着实践
- **理解原理**：不要只复制代码，思考每一步的设计意图
- **对比差异**：重构前后的代码对比是理解架构价值的关键
- **举一反三**：将学到的模式应用到自己的项目中

## 🔗 相关资源

- [GFramework 文档首页](../../)
- [Core 核心框架](../../core/)
- [Godot 集成](../../godot/)
- [源码生成器](../../source-generators/)

## ❓ 遇到问题？

- 查看 [常见问题 FAQ](./07-summary.md#常见问题-faq)
- 访问 [GitHub Issues](https://github.com/GeWuYou/GFramework/issues)
- 加入社区讨论

---

::: tip 提示
本教程采用循序渐进的方式，每一步都基于前一步的代码。建议按顺序学习，这样能更好地理解架构演进的过程。
:::

::: warning 注意
教程中的代码示例使用 Godot 4.5.1+ 和 .NET 6.0+。如果你使用不同版本，可能需要适当调整。
:::

让我们开始吧！👉 [第 1 章：环境准备](./01-environment.md)
