# GFramework 基础教程 这是一个循序渐进的教程,将带你从零开始学习 GFramework,通过构建一个计数器应用来理解框架的核心概念和最佳实践。 ## 目录 ### 第一部分:入门准备 - [环境准备](#环境准备) - [GFramework 核心概念](#gframework-核心概念) ### 第二部分:基础实践 - [创建第一个项目](#创建第一个项目) - [实现基础计数器](#实现基础计数器) ### 第三部分:架构深化 - [Model层设计](#model层设计) ### 第四部分:架构完善 - [System层实现](#system层实现) - [Utility层设计](#utility层设计) ### 第五部分:架构整合 - [完整架构集成](#完整架构集成) ### 第六部分:进阶理解 - [架构原理深入](#架构原理深入) - [最佳实践总结](#最佳实践总结) --- ## 环境准备 ### 系统要求 - **操作系统**: Windows 10+, macOS 10.15+, 或 Linux - **.NET SDK**: 6.0 或更高版本 - **Godot 引擎**: 4.5.1 或更高版本 - **IDE**: Visual Studio 2022+, JetBrains Rider, 或 VS Code ### 安装 .NET SDK 1. 访问 [.NET 官网](https://dotnet.microsoft.com/download) 2. 下载并安装 .NET 6.0 SDK 3. 验证安装: ```bash dotnet --version # 应该显示 6.0.x 或更高版本 ``` ### 安装 Godot 1. 访问 [Godot 官网](https://godotengine.org/download) 2. 下载 Godot (Mono版) 3. 解压到合适的位置并启动 4. 在编辑器设置中确认 .NET 支持 ### 验证环境 创建一个测试项目验证环境: ```bash # 创建测试项目 dotnet new console -n TestProject cd TestProject # 添加 GFramework 引用 dotnet add package GeWuYou.GFramework.Core dotnet add package GeWuYou.GFramework.Godot # 编译测试 dotnet build ``` --- ## GFramework 核心概念 ### MVC 架构模式简介 在传统的 MVC(Model-View-Controller)架构中: - **Model(模型)**: 管理应用程序的数据和业务逻辑 - **View(视图)**: 负责数据的展示和用户界面 - **Controller(控制器)**: 处理用户输入,协调 Model 和 View ### GFramework 架构组件概述 GFramework 在传统 MVC 基础上进行了扩展,包含以下核心组件: ```mermaid graph TD A[GFramework Architecture] --> B[Model] A --> C[View] A --> D[Controller] A --> E[System] A --> F[Utility] A --> G[EventBus] B --> B1[数据模型层] C --> C1[视图层] D --> D1[控制器层] E --> E1[系统业务逻辑层] F --> F1[工具服务层] G --> G1[事件总线] ``` ### 为什么选择事件驱动架构 传统的直接调用方式存在耦合问题: ```csharp // 传统方式 - 强耦合 Model.Increment(); View.UpdateDisplay(Model.Count); ``` 事件驱动架构的优势: ```csharp // 事件驱动 - 松耦合 Model.Increment(); // 只关心业务逻辑 // View 通过事件订阅自动更新 ``` --- ## 创建第一个项目 ### 项目结构规划 创建以下文件夹结构: ```text MyGFrameworkGame/ ├── scripts/ # 脚本代码 │ ├── architecture/ # 架构定义 │ ├── model/ # 数据模型 │ ├── system/ # 业务系统 │ ├── utility/ # 工具服务 │ ├── module/ # 模块定义 │ └── app/ # 应用入口 ├── scenes/ # 场景文件 ├── assets/ # 游戏资源 └── global/ # 全局类 ``` ### 包管理配置 推荐使用以下包配置: ```bash # 核心框架 dotnet add package GeWuYou.GFramework # Godot 集成 dotnet add package GeWuYou.GFramework.Godot # 源码生成器(可选但推荐) dotnet add package GeWuYou.GFramework.SourceGenerators ``` ### 基础场景搭建 创建一个简单的 UI 场景: ```text Control (App) ├── VBoxContainer │ ├── Label ("%Label") │ ├── HBoxContainer │ │ ├── Button ("%AddButton") │ │ └── Button ("%SubButton") ``` --- ## 实现基础计数器 ### 传统 MVC 实现方式 让我们先用传统方式实现一个简单的计数器: ```csharp using Godot; public partial class App : Control { private Button _addButton => GetNode