mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
docs(coroutine): 更新协程扩展方法和定时器类的文档注释
- 为 CoroutineExtensions 类添加了总体功能描述 - 完善了 RunCoroutine 方法的参数和返回值文档注释 - 补充了 CancelWith 方法族的参数说明和返回值描述 - 优化了 AllNodesAlive 私有方法的文档注释格式 - 将 Timing 类中的重复错误消息提取为静态只读字段 - 统一了调度器属性的异常消息为常量引用 - [release ci]
This commit is contained in:
parent
bbb4636967
commit
177552a730
@ -4,11 +4,18 @@ using Godot;
|
||||
|
||||
namespace GFramework.Godot.coroutine;
|
||||
|
||||
/// <summary>
|
||||
/// 提供协程相关的扩展方法,用于简化协程的启动和管理。
|
||||
/// </summary>
|
||||
public static class CoroutineExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 启动协程的扩展方法
|
||||
/// 启动协程的扩展方法。
|
||||
/// </summary>
|
||||
/// <param name="coroutine">要启动的协程枚举器。</param>
|
||||
/// <param name="segment">协程运行的时间段,默认为 Process。</param>
|
||||
/// <param name="tag">协程的标签,可用于标识或分组协程。</param>
|
||||
/// <returns>返回协程的句柄,可用于后续操作(如停止协程)。</returns>
|
||||
public static CoroutineHandle RunCoroutine(
|
||||
this IEnumerator<IYieldInstruction> coroutine,
|
||||
Segment segment = Segment.Process,
|
||||
@ -18,8 +25,11 @@ public static class CoroutineExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 让协程在指定节点被销毁时自动取消
|
||||
/// 让协程在指定节点被销毁时自动取消。
|
||||
/// </summary>
|
||||
/// <param name="coroutine">要执行的协程枚举器。</param>
|
||||
/// <param name="node">用于检查是否存活的节点。</param>
|
||||
/// <returns>包装后的协程枚举器。</returns>
|
||||
public static IEnumerator<IYieldInstruction> CancelWith(
|
||||
this IEnumerator<IYieldInstruction> coroutine,
|
||||
Node node)
|
||||
@ -29,8 +39,12 @@ public static class CoroutineExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 让协程在任一节点被销毁时自动取消
|
||||
/// 让协程在任一节点被销毁时自动取消。
|
||||
/// </summary>
|
||||
/// <param name="coroutine">要执行的协程枚举器。</param>
|
||||
/// <param name="node1">第一个用于检查是否存活的节点。</param>
|
||||
/// <param name="node2">第二个用于检查是否存活的节点。</param>
|
||||
/// <returns>包装后的协程枚举器。</returns>
|
||||
public static IEnumerator<IYieldInstruction> CancelWith(
|
||||
this IEnumerator<IYieldInstruction> coroutine,
|
||||
Node node1,
|
||||
@ -43,11 +57,11 @@ public static class CoroutineExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 让协程在多个节点都被销毁时自动取消
|
||||
/// 让协程在多个节点都被销毁时自动取消。
|
||||
/// </summary>
|
||||
/// <param name="coroutine">要执行的协程枚举器</param>
|
||||
/// <param name="nodes">用于检查是否存活的节点数组</param>
|
||||
/// <returns>包装后的协程枚举器</returns>
|
||||
/// <param name="coroutine">要执行的协程枚举器。</param>
|
||||
/// <param name="nodes">用于检查是否存活的节点数组。</param>
|
||||
/// <returns>包装后的协程枚举器。</returns>
|
||||
public static IEnumerator<IYieldInstruction> CancelWith(
|
||||
this IEnumerator<IYieldInstruction> coroutine,
|
||||
params Node[] nodes)
|
||||
@ -58,10 +72,10 @@ public static class CoroutineExtensions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查所有节点是否都处于存活状态
|
||||
/// 检查所有节点是否都处于存活状态。
|
||||
/// </summary>
|
||||
/// <param name="nodes">要检查的节点数组</param>
|
||||
/// <returns>如果所有节点都存活则返回true,否则返回false</returns>
|
||||
/// <param name="nodes">要检查的节点数组。</param>
|
||||
/// <returns>如果所有节点都存活则返回 true,否则返回 false。</returns>
|
||||
private static bool AllNodesAlive(Node[] nodes)
|
||||
{
|
||||
return nodes.All(Timing.IsNodeAlive);
|
||||
|
||||
@ -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)";
|
||||
|
||||
/// <summary>
|
||||
/// 获取Process调度器,如果未初始化则抛出异常
|
||||
/// </summary>
|
||||
private CoroutineScheduler ProcessScheduler =>
|
||||
_processScheduler ?? throw new InvalidOperationException(
|
||||
"Timing not yet initialized (_Ready not executed)");
|
||||
NotInitializedMessage);
|
||||
|
||||
/// <summary>
|
||||
/// 获取忽略暂停的Process调度器,如果未初始化则抛出异常
|
||||
/// </summary>
|
||||
private CoroutineScheduler ProcessIgnorePauseScheduler =>
|
||||
_processIgnorePauseScheduler ?? throw new InvalidOperationException(
|
||||
"Timing not yet initialized (_Ready not executed)");
|
||||
NotInitializedMessage);
|
||||
|
||||
/// <summary>
|
||||
/// 获取Physics调度器,如果未初始化则抛出异常
|
||||
/// </summary>
|
||||
private CoroutineScheduler PhysicsScheduler =>
|
||||
_physicsScheduler ?? throw new InvalidOperationException(
|
||||
"Timing not yet initialized (_Ready not executed)");
|
||||
NotInitializedMessage);
|
||||
|
||||
/// <summary>
|
||||
/// 获取Deferred调度器,如果未初始化则抛出异常
|
||||
/// </summary>
|
||||
private CoroutineScheduler DeferredScheduler =>
|
||||
_deferredScheduler ?? throw new InvalidOperationException(
|
||||
"Timing not yet initialized (_Ready not executed)");
|
||||
NotInitializedMessage);
|
||||
|
||||
#region 单例
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user