GFRuntimeTaskGroup¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/sequence/gf_runtime_task_group.gd - 模块:
Standard - 继承:
GFRuntimeTask - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
6.0.0
组合多个运行时任务的复合任务。 任务组用于把多个 [GFRuntimeTask] 编排为顺序、等待全部或等待任一完成的流程。 子任务在组内部推进,不会单独注册到外层调度器;外层调度器只看到一个占用聚合后的任务。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 枚举 | Mode |
enum Mode |
| 属性 | tasks |
var tasks: Array[GFRuntimeTask] = [] |
| 属性 | mode |
var mode: Mode = Mode.SEQUENCE |
| 属性 | cancel_remaining_on_finish |
var cancel_remaining_on_finish: bool = true |
| 方法 | _init |
func _init(p_tasks: Array[GFRuntimeTask] = [], p_mode: Mode = Mode.SEQUENCE) -> void: |
| 方法 | add_task |
func add_task(task: GFRuntimeTask) -> GFRuntimeTaskGroup: |
| 方法 | remove_task |
func remove_task(task: GFRuntimeTask) -> bool: |
| 方法 | rebuild_requirements |
func rebuild_requirements() -> void: |
| 方法 | get_tasks |
func get_tasks() -> Array[GFRuntimeTask]: |
| 方法 | initialize |
func initialize(scheduler: GFRuntimeTaskScheduler) -> void: |
| 方法 | tick |
func tick(delta: float) -> void: |
| 方法 | physics_tick |
func physics_tick(delta: float) -> void: |
| 方法 | is_finished |
func is_finished() -> bool: |
| 方法 | end |
func end(interrupted: bool) -> void: |
枚举¶
Mode¶
- API:
public - 首次版本:
6.0.0
enum Mode {
## 按顺序执行,每次只推进一个子任务。
SEQUENCE,
## 同时推进所有子任务,全部完成后任务组完成。
PARALLEL_ALL,
## 同时推进所有子任务,任一完成后任务组完成。
PARALLEL_RACE,
}
子任务推进模式。
属性¶
tasks¶
- API:
public - 首次版本:
6.0.0
子任务列表。
mode¶
- API:
public - 首次版本:
6.0.0
子任务推进模式。
cancel_remaining_on_finish¶
- API:
public - 首次版本:
6.0.0
[member mode] 为 [enum Mode.PARALLEL_RACE] 时,首个子任务完成后是否中断其他子任务。
方法¶
_init¶
- API:
public - 首次版本:
6.0.0
创建运行时任务组。
参数:
| 名称 | 说明 |
|---|---|
p_tasks |
初始子任务列表。 |
p_mode |
子任务推进模式。 |
add_task¶
- API:
public - 首次版本:
6.0.0
添加子任务,并把子任务 requirement 合并到任务组。
参数:
| 名称 | 说明 |
|---|---|
task |
要添加的子任务。 |
返回:当前任务组。
remove_task¶
- API:
public - 首次版本:
6.0.0
移除子任务并重建任务组 requirement。
参数:
| 名称 | 说明 |
|---|---|
task |
要移除的子任务。 |
返回:成功移除时返回 true。
rebuild_requirements¶
- API:
public - 首次版本:
6.0.0
重建任务组 requirement 聚合。
get_tasks¶
- API:
public - 首次版本:
6.0.0
返回子任务副本。
返回:子任务副本。
initialize¶
- API:
public - 首次版本:
6.0.0
初始化任务组。
参数:
| 名称 | 说明 |
|---|---|
scheduler |
当前调度器。 |
tick¶
- API:
public - 首次版本:
6.0.0
按帧推进任务组。
参数:
| 名称 | 说明 |
|---|---|
delta |
帧间隔秒数。 |
physics_tick¶
- API:
public - 首次版本:
6.0.0
按物理帧推进任务组。
参数:
| 名称 | 说明 |
|---|---|
delta |
物理帧间隔秒数。 |
is_finished¶
- API:
public - 首次版本:
6.0.0
判断任务组是否已经完成。
返回:任务组已完成时返回 true。
end¶
- API:
public - 首次版本:
6.0.0
结束任务组。
参数:
| 名称 | 说明 |
|---|---|
interrupted |
为 true 时表示任务组被其他任务或调度器取消。 |