Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文
目前只编译上传了Win64版本,其他平台的支持只需要修改
Plugins/ControlFlowsBlueprint/ControlFlowsBlueprint.uplugin中的PlatformAllowList和SupportedTargetPlatforms即可。
使用过程遇到任何问题可以直接在
Github联系我,或者在https://www.bonan.online/ControlFlowsBlueprintSupport留言。
AControlFlowsBlueprintExampleActor 是 ControlFlowsBlueprint 插件的示例测试 Actor,演示了控制流系统的各种功能和使用方式。
通过 AutoRunExampleType 枚举选择要运行的示例:
| 类型 | 说明 |
|---|---|
SimpleSequence |
简单顺序执行 |
AsyncWait |
异步等待操作 |
Branch |
分支选择 |
Concurrent |
并发执行 |
Loop |
循环执行 |
SubFlow |
子流程嵌套 |
Complex |
复杂混合示例 |
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
bAutoRunBPExampleOnBeginPlay |
bool | false | BeginPlay 时自动运行蓝图示例 |
bAutoRunExampleOnBeginPlay |
bool | false | BeginPlay 时自动运行 C++ 示例 |
AutoRunExampleType |
EExampleType | SimpleSequence | 自动运行的示例类型 |
ExampleDelayTime |
float | 2.0 | 异步操作延迟时间(秒) |
ExampleLoopCount |
int32 | 3 | 循环示例的迭代次数 |
CurrentControlFlow
->QueueStep(TEXT("Step 1"), Step1)
->QueueStep(TEXT("Step 2"), Step2)
->QueueStep(TEXT("Step 3"), Step3);按顺序执行 Step1 → Step2 → Step3。
CurrentControlFlow
->QueueStep(TEXT("Prepare"), Prepare)
->QueueWait(TEXT("Async Operation"), AsyncWait)
->QueueStep(TEXT("Cleanup"), Cleanup);执行流程:
- 执行 Prepare 步骤
- 启动异步操作,等待
ExampleDelayTime秒 - 调用
NodeRef->ContinueFlow()继续 - 执行 Cleanup 步骤
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"
随机选择一个分支执行。
CurrentControlFlow
->QueueStep(TEXT("Setup"), Setup)
->QueueConcurrent(TEXT("Parallel Tasks"), Parallel)
->QueueStep(TEXT("Merge Results"), Merge);在 SetupConcurrentExample 中添加并发任务:
- Task A
- Task B
- Task C
所有任务并行执行,全部完成后继续。
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结束循环
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
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 |
运行复杂混合示例 |
| 事件 | 参数 | 说明 |
|---|---|---|
OnStepExecuted |
StepName | 步骤执行时 |
OnAsyncStepStarted |
StepName | 异步步骤开始时 |
OnFlowCompleted |
FlowName | 流程完成时 |
OnFlowCancelled |
FlowName | 流程取消时 |
- 将
AControlFlowsBlueprintExampleActor放入关卡 - 设置
bAutoRunExampleOnBeginPlay = true - 选择
AutoRunExampleType - 运行游戏查看日志输出
或在蓝图/C++ 中手动调用 RunXxxExample() 函数。






