Skip to content

Repository files navigation

Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文


目前只编译上传了Win64版本,其他平台的支持只需要修改Plugins/ControlFlowsBlueprint/ControlFlowsBlueprint.uplugin中的PlatformAllowListSupportedTargetPlatforms即可。

使用过程遇到任何问题可以直接在Github联系我,或者在https://www.bonan.online/ControlFlowsBlueprintSupport留言。


ControlFlowsBlueprintExampleActor 测试文档

概述

AControlFlowsBlueprintExampleActor 是 ControlFlowsBlueprint 插件的示例测试 Actor,演示了控制流系统的各种功能和使用方式。

示例类型

通过 AutoRunExampleType 枚举选择要运行的示例:

类型说明
SimpleSequence简单顺序执行
AsyncWait异步等待操作
Branch分支选择
Concurrent并发执行
Loop循环执行
SubFlow子流程嵌套
Complex复杂混合示例

配置属性

属性类型默认值说明
bAutoRunBPExampleOnBeginPlayboolfalseBeginPlay 时自动运行蓝图示例
bAutoRunExampleOnBeginPlayboolfalseBeginPlay 时自动运行 C++ 示例
AutoRunExampleTypeEExampleTypeSimpleSequence自动运行的示例类型
ExampleDelayTimefloat2.0异步操作延迟时间(秒)
ExampleLoopCountint323循环示例的迭代次数

示例详解

1. SimpleSequence - 简单顺序执行

CurrentControlFlow
->QueueStep(TEXT("Step 1"), Step1)
->QueueStep(TEXT("Step 2"), Step2)
->QueueStep(TEXT("Step 3"), Step3);

按顺序执行 Step1 → Step2 → Step3。

2. AsyncWait - 异步等待

CurrentControlFlow
->QueueStep(TEXT("Prepare"), Prepare)
->QueueWait(TEXT("Async Operation"), AsyncWait)
->QueueStep(TEXT("Cleanup"), Cleanup);

执行流程:

  1. 执行 Prepare 步骤
  2. 启动异步操作,等待 ExampleDelayTime
  3. 调用 NodeRef->ContinueFlow() 继续
  4. 执行 Cleanup 步骤

3. Branch - 分支选择

CurrentControlFlow
->QueueStep(TEXT("Initialize"), Init)
->QueueBranch(TEXT("Decision Point"), Decide)
->QueueStep(TEXT("Finalize"), Finalize);

ExampleBranchSelector 中动态添加分支:

  • Branch 0: "Branch A"
  • Branch 1: "Branch B"
  • Branch 2: "Branch C"

随机选择一个分支执行。

4. Concurrent - 并发执行

CurrentControlFlow
->QueueStep(TEXT("Setup"), Setup)
->QueueConcurrent(TEXT("Parallel Tasks"), Parallel)
->QueueStep(TEXT("Merge Results"), Merge);

SetupConcurrentExample 中添加并发任务:

  • Task A
  • Task B
  • Task C

所有任务并行执行,全部完成后继续。

5. Loop - 循环执行

CurrentControlFlow
->QueueStep(TEXT("Loop Setup"), Setup)
->QueueLoop(TEXT("Repeat Process"), LoopCond)
->QueueStep(TEXT("Loop Cleanup"), Cleanup);

ExampleLoopCondition 中:

  • 检查 CurrentLoopIteration >= ExampleLoopCount 决定是否继续
  • 每次迭代执行 "Loop Work" 步骤和 0.5 秒延迟
  • 返回 RunLoop 继续循环,LoopFinished 结束循环

6. SubFlow - 子流程

CurrentControlFlow
->QueueStep(TEXT("Prepare"), Prepare)
->QueueSubFlow(TEXT("InitializeSubsystems"), InitSubsystems)
->QueueSubFlow(TEXT("LoadResources"), LoadResources)
->QueueStep(TEXT("Finalize"), Finalize);

子流程 InitializeSubsystems 包含:

  • InitAudio → InitNetwork → InitUI → SubsystemWarmup (0.5s delay)

子流程 LoadResources 包含:

  • LoadTextures → LoadMeshes → LoadSounds

7. Complex - 复杂混合

CurrentControlFlow
->QueueStep(TEXT("Initialize System"), Init)
->QueueDelay(TEXT("Startup Delay"), 1.0f)
->QueueBranch(TEXT("System Check"), Decide)
->QueueConcurrent(TEXT("Parallel Loading"), Parallel)
->QueueStep(TEXT("Finalize System"), Finalize);

组合使用多种控制流类型。

事件回调

事件说明
OnFlowComplete流程完成时触发
OnStepComplete步骤完成时触发
OnFlowCancelled流程取消时触发

蓝图可调用函数

函数说明
BP_CreateExampleFlow创建示例控制流
RunSimpleSequenceExample运行简单顺序示例
RunAsyncWaitExample运行异步等待示例
RunBranchExample运行分支示例
RunConcurrentExample运行并发示例
RunLoopExample运行循环示例
RunSubFlowExample运行子流程示例
RunComplexExample运行复杂混合示例

蓝图可实现事件

事件参数说明
OnStepExecutedStepName步骤执行时
OnAsyncStepStartedStepName异步步骤开始时
OnFlowCompletedFlowName流程完成时
OnFlowCancelledFlowName流程取消时

使用方法

  1. AControlFlowsBlueprintExampleActor 放入关卡
  2. 设置 bAutoRunExampleOnBeginPlay = true
  3. 选择 AutoRunExampleType
  4. 运行游戏查看日志输出

或在蓝图/C++ 中手动调用 RunXxxExample() 函数。

About

ControlFlowsBlueprint Doc

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages