这篇条目有关 Source引擎。如需详情,点击这里。

trigger_proximity

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
C++ 类层级
CTriggerProximity
CBaseTrigger
CBaseToggle
CBaseEntity
C++ triggers.cpp

trigger_proximity是一个固体实体(en),可在所有的 起源 起源 游戏中使用。 用于测量trigger(en)体积内实体与指定点的距离(在给定半径范围内)。当实体位于中心点时,NearestEntityDistance输出为0;当实体位于半径边缘时输出为1。

Note.png注意:此实体无法可靠检测实体何时离开半径范围,因此仅适用于检测实体接近情况。这是由于NearestEntityDistance输出仅在实体位于半径内时触发,且只发送0(靠近中心)或1(位于边缘)参数值。如需检测实体远离,请改用trigger_multiple(en)OnEndTouch输出。
Tip.png提示:该实体的主要用途是检测与可旋转动态实体的接近程度,因为其检测区域是固定球形。虽然可以创建球形父级触发器,但不建议使用球形brush。
Note.png注意:此实体在多人地图中表现不佳。虽然能运行,但如果有多个玩家会破坏地图中所有其他触发器。单人模式下则显示正常。

键值

Name (目标名称) <target_source>[ Edit ]
这个名称是其他实体通过 输入/输出(en) 或其他 关键值(en)(如 parentnametarget) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告(en) 中。
参见:  所有实体均可使用的 通用键值、输入与输出(en)

Point to Measure From (measuretarget) <target_destination>
作为测量基准点的目标实体名称。
Radius to measure within (radius) <浮点型(en)>
进行距离映射的半径范围,超出半径的实体将被忽略。
BaseTrigger
Filter Name (filtername) <filter(en)>
A filter entity to test potential activators against.
Start Disabled (StartDisabled) <布尔值(en)>
Stay dormant until activated (with theEnableinput).

属性(Flags)

BaseTrigger
Everything (not including physics debris) : [64]
Clients (Survivors, Special Infected, Tanks 求生之路系列求生之路系列 之中) : [1]
Only clients in vehicles : [32]
Only clients *not* in vehicles : [512]
Disallow Bots (被移除求生之路 以来) : [4096]
NPCs (Common Infected, Witches 求生之路系列求生之路系列 之中) : [2]
Only player ally NPCs : [16]
Only NPCs in vehicles (respects player ally flag) : [2048]
Physics Objects (not including physics debris) : [8]
Physics debris (include also physics debris) : [1024]
Pushables (Passes entities with classname func_pushable) : [4] Obsolete
已弃用。
Equivalent to using Everything + filter_activator_class that filters func_pushable.

输入

BaseTrigger
Toggle
Toggles this trigger between enabled and disabled states.
Enable
Enable trigger
Disable
Disable trigger
TouchTest  (存在于自 起源2007 以来)
Triggers either the OnTouching or OnNotTouching outputs for whether anything is touching this entity.
Icon-Bug.png错误:Sleeping prop_physics will never fire "OnTouching". Also applies to entities using prop_physics as base.  (tested in: 半衰期2)
StartTouch  (存在于自 起源2007 以来) 不存在于FGD!
Behave as if the !caller entity had just entered the trigger volume. Accepts non-physical entities.
EndTouch  (存在于自 起源2007 以来) 不存在于FGD!
Behave as if !caller had just exited the trigger volume.
DisableAndEndTouch  (存在于 起源2013 多人分支军团要塞2分支 之中)
Disables this trigger and calls EndTouch on all currently-touching entities.

输出

NearestEntityDistance <浮点型(en)>
!activator = 最接近测量目标的触发实体[证实]
!caller = this entity
当实体接触触发体积时持续触发。
输出参数表示从测量点到最近符合过滤条件实体的距离。
距离值会映射到半径范围:0表示实体位于基准点,1表示实体位于半径边缘。
BaseTrigger
OnStartTouch
!activator = entity that caused this output
!caller = this entity
Fired when a valid entity starts touching this trigger.
OnStartTouchAll
!activator = entity that caused this output
!caller = this entity
Fired when a valid entity starts touching this trigger, and no other entities are touching it. If there are any other entities touching the trigger when a new one begins to touch, only OnStartTouch will fire.
OnEndTouch
!activator = entity that caused this output
!caller = this entity
Fired when a valid entity stops touching this trigger.
Note.png注意:Will also fire for entities touching it when trigger is disabled via Disable input
Warning.png警告:This includes entities which are deleted while inside the trigger. In this case !activator will be invalid.
Warning.png警告:OnEndTouch can fire before OnStartTouch under certain circumstances[如何?] where both are fired on the same tick and each have the same delay.
Note.png修复:Add a slight delay to OnEndTouch.
OnEndTouchAll
!activator = entity that caused this output
!caller = this entity
Fired when all valid entities stop touching this trigger.
OnTouching  (存在于自 起源2007 以来)
!activator = !caller = this entity
Fired if something is currently touching this trigger when TouchTest is fired.
OnNotTouching  (存在于自 起源2007 以来)
!activator = !caller = this entity
Fired if nothing is currently touching this trigger when TouchTest is fired.