User输入输出系统

From Valve Developer Community
< Zh
Revision as of 23:56, 26 June 2025 by WoShiGeNiCheng (talk | contribs) (Created page with "{{LanguageBar|User_Inputs_Outputs|title=User输入输出系统}} '''FireUser1-4'''输入和'''OnUser1-4'''输出是所有支持{{L|Inputs_and_Outputs|输入输出}}的实体共有的控制接口。 == 核心机制 == 1. **双向绑定**: - 接收"FireUserN"输入必然触发对应"OnUserN"输出 - 功能等价于{{L|logic_relay}}的Trigger/OnTrigger组合 - 每个实体独立拥有4组互不干扰的通道 2. **设计优势**: - 实现单实体控制多...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

FireUser1-4输入和OnUser1-4输出是所有支持输入输出(en)的实体共有的控制接口。

核心机制

1. **双向绑定**:

  - 接收"FireUserN"输入必然触发对应"OnUserN"输出
  - 功能等价于logic_relay(en)的Trigger/OnTrigger组合
  - 每个实体独立拥有4组互不干扰的通道

2. **设计优势**:

  - 实现单实体控制多目标差异化响应
  - 避免logic_relay(en)的冗余使用
  - Valve官方推荐的多实体批量控制方案
Note.png注意:这些输出在实体禁用状态下仍会触发
Warning.png警告:通过自动发送参数的输出(如math_counter(en)的OnGetValue)触发FireUserX可能导致错误,因其参数类型设计存在冲突

应用案例

海鸥群控系统

地图d2_coast_08(en)实现方案:

输出源 输出项 目标实体 输入项 参数 延迟
logic_auto(en) OnMapSpawn npc_seagull FireUser1 - 0
npc_seagull OnUser1 !self FlyAway bird_flightpath_a_48 0
    • 工作流程**:

1. logic_auto触发所有同名海鸥的FireUser1 2. 每只海鸥通过OnUser1自定义飞行路径 3. 复制实体时只需修改路径参数

轨道列车系统

地图d3_citadel_01(en)实现方案:

输出源 输出项 目标实体 输入项 参数 延迟
path_track OnPass !activator FireUser1 - 0.1
func_tracktrain OnUser1 zapperpod1_rotator Open - 0
func_tracktrain OnUser1 zapperpod1_rotator Close - 5
    • 协同控制**:

- 列车到站自动触发舱门序列 - 0秒延迟打开舱门 - 5秒后自动关闭舱门

自配置色调控制器

env_tonemap_controller(en)自管理方案:

输出源 输出项 目标实体 输入项 参数 延迟
OnUser1 !self SetTonemapRate 0.25 0
OnUser1 !self SetBloomScale 0.2 0
    • 优势**:

- 配置数据与实体共存 - 避免参数分散存储 - 支持批量参数设置

参见