diff --git a/GFramework.Godot/coroutine/CoroutineExtensions.cs b/GFramework.Godot/coroutine/CoroutineExtensions.cs
index 7ea08d4..1a0c112 100644
--- a/GFramework.Godot/coroutine/CoroutineExtensions.cs
+++ b/GFramework.Godot/coroutine/CoroutineExtensions.cs
@@ -4,11 +4,18 @@ using Godot;
namespace GFramework.Godot.coroutine;
+///
+/// 提供协程相关的扩展方法,用于简化协程的启动和管理。
+///
public static class CoroutineExtensions
{
///
- /// 启动协程的扩展方法
+ /// 启动协程的扩展方法。
///
+ /// 要启动的协程枚举器。
+ /// 协程运行的时间段,默认为 Process。
+ /// 协程的标签,可用于标识或分组协程。
+ /// 返回协程的句柄,可用于后续操作(如停止协程)。
public static CoroutineHandle RunCoroutine(
this IEnumerator coroutine,
Segment segment = Segment.Process,
@@ -18,8 +25,11 @@ public static class CoroutineExtensions
}
///
- /// 让协程在指定节点被销毁时自动取消
+ /// 让协程在指定节点被销毁时自动取消。
///
+ /// 要执行的协程枚举器。
+ /// 用于检查是否存活的节点。
+ /// 包装后的协程枚举器。
public static IEnumerator CancelWith(
this IEnumerator coroutine,
Node node)
@@ -29,8 +39,12 @@ public static class CoroutineExtensions
}
///
- /// 让协程在任一节点被销毁时自动取消
+ /// 让协程在任一节点被销毁时自动取消。
///
+ /// 要执行的协程枚举器。
+ /// 第一个用于检查是否存活的节点。
+ /// 第二个用于检查是否存活的节点。
+ /// 包装后的协程枚举器。
public static IEnumerator CancelWith(
this IEnumerator coroutine,
Node node1,
@@ -43,11 +57,11 @@ public static class CoroutineExtensions
}
///
- /// 让协程在多个节点都被销毁时自动取消
+ /// 让协程在多个节点都被销毁时自动取消。
///
- /// 要执行的协程枚举器
- /// 用于检查是否存活的节点数组
- /// 包装后的协程枚举器
+ /// 要执行的协程枚举器。
+ /// 用于检查是否存活的节点数组。
+ /// 包装后的协程枚举器。
public static IEnumerator CancelWith(
this IEnumerator coroutine,
params Node[] nodes)
@@ -58,12 +72,12 @@ public static class CoroutineExtensions
}
///
- /// 检查所有节点是否都处于存活状态
+ /// 检查所有节点是否都处于存活状态。
///
- /// 要检查的节点数组
- /// 如果所有节点都存活则返回true,否则返回false
+ /// 要检查的节点数组。
+ /// 如果所有节点都存活则返回 true,否则返回 false。
private static bool AllNodesAlive(Node[] nodes)
{
return nodes.All(Timing.IsNodeAlive);
}
-}
\ No newline at end of file
+}
diff --git a/GFramework.Godot/coroutine/Timing.cs b/GFramework.Godot/coroutine/Timing.cs
index 29fdf6c..4d6fbd8 100644
--- a/GFramework.Godot/coroutine/Timing.cs
+++ b/GFramework.Godot/coroutine/Timing.cs
@@ -28,34 +28,35 @@ public partial class Timing : Node
private GodotTimeSource? _processTimeSource;
private CoroutineScheduler? _processIgnorePauseScheduler;
private GodotTimeSource? _processIgnorePauseTimeSource;
+ private const string NotInitializedMessage = "Timing not yet initialized (_Ready not executed)";
///
/// 获取Process调度器,如果未初始化则抛出异常
///
private CoroutineScheduler ProcessScheduler =>
_processScheduler ?? throw new InvalidOperationException(
- "Timing not yet initialized (_Ready not executed)");
+ NotInitializedMessage);
///
/// 获取忽略暂停的Process调度器,如果未初始化则抛出异常
///
private CoroutineScheduler ProcessIgnorePauseScheduler =>
_processIgnorePauseScheduler ?? throw new InvalidOperationException(
- "Timing not yet initialized (_Ready not executed)");
+ NotInitializedMessage);
///
/// 获取Physics调度器,如果未初始化则抛出异常
///
private CoroutineScheduler PhysicsScheduler =>
_physicsScheduler ?? throw new InvalidOperationException(
- "Timing not yet initialized (_Ready not executed)");
+ NotInitializedMessage);
///
/// 获取Deferred调度器,如果未初始化则抛出异常
///
private CoroutineScheduler DeferredScheduler =>
_deferredScheduler ?? throw new InvalidOperationException(
- "Timing not yet initialized (_Ready not executed)");
+ NotInitializedMessage);
#region 单例