# Godot 协程系统 > GFramework 在 Godot 引擎中的协程支持,实现异步操作的优雅管理 ## 概述 GFramework.Godot 提供了与 Godot 引擎深度集成的协程系统,让异步编程变得简单直观。通过协程,您可以暂停执行、等待条件满足、或延迟执行操作,而不会阻塞主线程。 ## 核心特性 - **无缝集成**:与 Godot 的 `_Process`、`_Ready` 等生命周期方法完美配合 - **类型安全**:强类型的协程返回结果处理 - **自动清理**:协程与节点生命周期自动绑定,避免内存泄漏 - **丰富的等待条件**:支持等待信号、时间延迟、帧结束等多种条件 ## 基本用法 ### 创建协程 使用 `StartCoroutine` 方法启动协程: ```csharp using GFramework.Godot.coroutine; [ContextAware] public partial class MyNode : Node { public override void _Ready() { // 启动协程 this.StartCoroutine(DoSomethingAsync()); } private System.Collections.IEnumerator DoSomethingAsync() { GD.Print("开始执行"); // 等待 2 秒 yield return new WaitForSeconds(2.0f); GD.Print("2 秒后继续执行"); // 等待下一帧 yield return new WaitForEndOfFrame(); GD.Print("下一帧继续"); } } ``` ### 等待信号 协程可以等待 Godot 信号: ```csharp private System.Collections.IEnumerator WaitForSignalExample() { GD.Print("等待按钮点击"); // 等待按钮被点击 var button = GetNode