SuperAPI AI 工具集

vvvv-channels

通用与其它

查看项目

更新于 10-16 01:11

技能介绍

用途:帮助在 C# 中对接 vvvv gamma 的 Channel 系统。Channel 是具名、带类型、可观察的值容器,是 vvvv gamma 的核心响应式数据流机制,任何代码都可通过字符串路径读写。

主要能力:公共频道注册在应用级 channel hub 中,可用 IChannelHub.HubForApp 与 hub.TryGetChannel("路径") 查找;读取用 ch.Object,写入会触发所有订阅者。用 [CanBePublished(true)](来自 VL.Core.EditorAttributes)标注类型后,其属性才会发布为频道,单个属性可用 [CanBePublished(false)] 隐藏。路径采用点分层级,如 Root.Page.Zone.Parameter,Spread 元素用 Items[0].PropertyName 形式。子频道由 SubChannel 系统自动创建,无需手动建立。层级传播自动完成:写根频道会更新所有子频道,写叶子频道会更新父频道。订阅使用 IObservable 模式,Bang 频道用 System.Reactive.Unit。

使用方式:节点启动时频道可能尚未存在,需每帧重试绑定,绑定成功后缓存引用即可。资料给出 PublicChannelHelper 工具类封装重试绑定与可选订阅,并列出层级节点、叶子参数节点、带索引的 Spread 元素节点三种 ProcessNode 模式。

限制与注意:切勿使用 hub.TryAddChannel(),它创建空值频道会导致 NullReferenceException,只能用 TryGetChannel 查找;订阅必须在 Dispose 中释放;Spread.AsSpreadUnsafe 包装后不得再修改原数组;写入自己订阅的频道时用抑制标志避免反馈循环;[CanBePublished] 需 VL.Core 2025.7.1-0163+。资料未提供收费、平台与效果信息。