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

trigger_look

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

trigger_look是一个固体实体(en),可在所有的 起源 起源 游戏中使用。 用于当玩家注视某物时触发事件。

当玩家在触发体积内注视目标实体达到指定时间后,会触发OnTrigger输出。如果玩家离开触发区域或移开视线,计时器将重置。

如果勾选了Use Velocity instead of facing属性(Flags),触发器将使用玩家速度而非视角方向来判断,适用于玩家驾驶载具朝向目标的情况。

Note.png注意:仅设计用于单人游戏。
Note.png注意:只要玩家接触该实体,朝向目标实体方向即可触发,即使目标不在玩家直接视线内(如中间有世界几何体阻挡)。
Icon-Bug.png错误:传送门 传送门中,通过传送门注视目标实体不会触发OnTrigger输出。  [todo tested in ?]
Icon-Bug.png错误:如果地图中有多个同名目标实体,OnTrigger可能触发不稳定。输出可能延迟或完全不触发,同名实体越多问题越严重。  [todo tested in ?]

键值

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

Look Target (target) <target_destination>
要注视的实体名称。
LookTime (LookTime) <字符串(en)>
玩家必须注视目标的秒数(离开触发区域或超出视野阈值会重置)。
Icon-Bug.png错误:值为1.0时即使直视目标也无法触发。  [todo tested in ?]
FieldOfView (FieldOfView) <字符串(en)>
Timeout (Timeout) <浮点型(en)>
Use LOS (UseLOS) <布尔值(en)> (存在于 Mapbase 之中)
启用视线检测
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)

Fire Once
仅触发一次 : [128]
Use Velocity instead of facing
使用速度而非朝向 : [256]
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.

输出

OnTimeout
玩家未注视目标且超时后触发。
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.

另见

Trigger_Look讲解视频