跳到主要内容

连接类型与端口

在构建流程之前,您必须理解图表的可视化语言。每种颜色、形状和线条样式都传达了数据流和执行行为。

快速参考

此处显示的图例也可在流程编辑器(右侧面板)中找到。将鼠标悬停在图例的任何位置以查看详细工具提示。


🧬 节点类型

节点的标题颜色表示其执行模式。

Node Types

执行模式

颜色类型行为使用场景
🔴 红色根节点入口点 - 外部触发事件时触发游戏开始、玩家输入、碰撞检测
🟠 橙色触发器节点并行(扇出) - 触发后立即继续(非阻塞)声音 + VFX + UI更新同时发生
🟢 绿色链节点顺序(阻塞) - 触发后等待再继续过场动画、延迟动作、异步操作

根节点规则

每个图一个:每个图表只有一个根节点。

设置根:右键点击任何节点以设置为根来更改入口点。

可视化:红色标题渐变使其立即可识别。


触发器 vs 链

触发器模式(并行):

触发器

全部并行一起执行!

链模式(顺序):

每个都等待前一个完成!


🔌 端口类型(数据签名)

端口颜色表示C#事件签名和数据有效载荷。

Port Colors

端口颜色含义

颜色签名描述示例事件
🔵 青色()Void - 不传递数据OnGameStartOnButtonClick
🌸 粉色<T>单参数 - 一个数据有效载荷OnScoreChanged(int)OnDamage(DamageInfo)
💜 紫色<TSender, TArgs>双参数 - Sender + 有效载荷OnPlayerDamaged(GameObject, DamageInfo)

端口解剖

  • 左端口(输入):从前一个节点接收数据。
  • 右端口(输出):将数据发送到下一个节点。

🔗 连接兼容性

系统在创建连接时提供实时类型安全

Connection Colors

兼容性级别

颜色状态含义影响
🟢 绿色完美匹配类型完全匹配零开销,无转换
🟡 黄色兼容安全操作,数据丢弃参数被忽略,无错误
🟠 橙色警告需要类型转换自动转换(例如,int → float)
🔴 红色不兼容运行时将失败连接被阻止

视觉反馈

拖动时

  • 预览线显示兼容性颜色
  • 无效目标显示为暗淡
  • 有效目标高亮显示

连接后

  • 线条颜色保持
  • 橙色/红色出现警告图标(⚠️)
  • 悬停查看详细工具提示

📊 兼容性矩阵

连接颜色由源类型目标类型传递参数设置决定。

完整兼容性表

源事件目标事件传递参数结果说明
任何任何🟢 绿色覆盖:目标忽略所有输入
Void ()Void ()🟢 绿色完美匹配 - 不需要数据
Void ()<T>🔴 红色错误:目标需要数据,源没有
Void ()<S,T>🔴 红色错误:目标需要sender,源没有
<T>Void ()🟡 黄色安全:参数丢弃
<T><T>🟢 绿色完美匹配 - 相同类型
<T><S,T>🔴 红色错误:目标需要sender,源没有
<S,T>Void ()🟡 黄色安全:sender和arg都丢弃
<S,T><T>🟡 黄色安全:sender丢弃,arg传递
<S,T><S,T>🟢 绿色完美匹配 - sender + arg
<T1><T2>🟠 橙色警告:类型转换(int ↔ float)

特殊情况

传递参数 = 关

始终产生🟢 绿色连接,因为目标忽略所有输入数据。

使用场景:将类型化事件链接到void事件而无类型错误。


数值转换

在兼容的数值类型之间自动转换(🟠 橙色):

  • intfloat
  • floatdouble
  • intlong

警告:可能丢失精度(例如,float 3.14 → int 3)。


不兼容类型

在连接时被阻止(🔴 红色):

  • stringint
  • GameObjectfloat
  • 自定义类型不匹配

系统阻止创建这些连接。


🏷️ 状态徽章

徽章出现在节点底部以显示活动配置。

Node Badges

徽章参考

图标徽章含义适用于
🧩Cond可视化条件树活动所有节点
⏱️2.5s开始延迟(秒)所有节点
3.0s阻塞持续时间(秒)仅链
Wait等待异步完成仅链
⬆️+5执行优先级仅触发器
🔗Pass将参数传递给下一个节点所有节点
📌Static参数被阻止(静态调用)所有节点

徽章示例

带延迟 + 持续时间的链节点

⏱️ 1.0s   ← 开始前等待1秒
⏳ 3.0s ← 然后阻塞3秒

带条件 + 优先级的触发器节点

🧩 Cond   ← 仅在条件通过时触发
⬆️ +10 ← 在其他触发器之前执行

带参数传递的任何节点

🔗 Pass   ← 将事件数据转发到下一个节点

🎨 可视化示例

示例1:完美匹配链

Node Perfect Match

颜色

  • 线1:🟢 绿色(完美匹配)
  • 线2:🟡 黄色(sender安全丢弃)

示例2:类型转换警告

Node Compatible

颜色:🟠 橙色(int → float转换)

风险:精度变化,但有效


示例3:传递参数

Node Compatible

颜色:🟢 绿色(void → int)

无阻塞: 忽略参数以匹配


示例4:并行触发器扇出

Node Compatible

所有连接: 绿色(void → void),立即并行执行


💡 最佳实践

明智使用传递参数

何时传递(开启)

  • 下一个节点需要事件数据
  • 构建数据管道
  • 转发伤害信息、分数等

何时阻止(关闭)

  • 连接不兼容的类型
  • 通用通知(不需要数据)
  • 简化复杂类型链

为流程进行颜色编码

绿色为主的图表:类型良好。

黄色连接:有意丢弃数据时可以接受。

橙色线条:检查正确性——确保转换是有意的。

红色块:立即修复——运行时将失败。


按类型组织

将相似签名节点分组在一起:

  • Void事件在一个区域
  • 数据事件在另一个区域
  • 异步链与触发器分开

为什么:使类型兼容性更容易可视化。


❓ 常见问题

为什么我的连接是红色的?

原因:无法解决的类型不匹配。

修复

  1. 检查目标是否需要sender但源不提供
  2. 在目标节点上禁用"传递参数"
  3. 插入中间转换节点

我可以连接不同的数值类型吗?

可以:系统自动转换intfloatdoublelong

结果:🟠 橙色连接,带转换警告。

注意:注意精度损失(float → int)。


黄色是什么意思?

含义:安全连接,但数据丢弃

示例:将<int>发送到<void>会丢弃整数。

安全吗?:是——无运行时错误,只是未使用的数据。

快速访问图例

在流程图编辑器中工作时,图例面板(右侧)显示所有节点类型、端口颜色和连接含义。将鼠标悬停在任何图例项上以获取详细工具提示。

运行时错误

🔴 红色连接在创建期间被阻止以防止运行时崩溃。如果您需要连接不兼容的类型,请在目标节点上禁用"传递参数"——这通过忽略输入数据强制🟢 绿色连接。