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

logic_measure_movement

From Valve Developer Community
< Zh
Revision as of 20:14, 5 December 2025 by WoShiGeNiCheng (talk | contribs) (Created page with "{{LanguageBar|logic_measure_movement|title=logic_measure_movement}} {{Source topicon}} {{CD|CLogicMeasureMovement|file1=logic_measure_movement.cpp}} {{this is a|逻辑实体|name=logic_measure_movement}} 此实体测量一个实体相对于另一个实体的移动,然后将该移动应用于第三个实体。 logic_measure_movement 的过程可以描述如下: 1. 获取“要测量的实体”的位置。假设它是 <code>[100 225 0]</code>。 2. 获取“测...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
C++ 类层级
CLogicMeasureMovement
CLogicalEntity
CServerOnlyEntity
CBaseEntity
C++ logic_measure_movement.cpp

logic_measure_movement是一个逻辑实体,可在所有的 起源 起源 游戏中使用。 此实体测量一个实体相对于另一个实体的移动,然后将该移动应用于第三个实体。

logic_measure_movement 的过程可以描述如下:

1. 获取“要测量的实体”的位置。假设它是 [100 225 0]。 2. 获取“测量参考”的位置。假设它是 [50 300 0]。 3. 将“要测量的实体”的位置减去“测量参考”的位置,创建一个“相对位置”差。在这种情况下,将是 [100 225 0] - [50 300 0],等于 [50 -75 0]。 4. 获取“移动参考”的位置。假设它是 [150 50 100]。 5. 将“相对差值”位置加到“移动参考”的位置上。在这种情况下,将是 [50 -75 0] + [150 50 100],等于 [200 -25 100]。 6. 将“要移动的实体”传送到“相对差值”位置与“移动参考”位置的总和处,在这种情况下意味着实体被传送到 [200 -25 100]

logic_measure_movement 非常灵活,可用于让一个实体模仿另一个房间中另一个实体的移动(例如,point_camera 在 script_intro 中)。它也可以用作父子层级关系的替代方案,特别是因为它可以模拟物理对象上的父子关系,而物理对象不支持父子关系,通常使用 phys_constraint

Warning.png警告:无法正确更新被移动对象的碰撞物理状态。
Cpp.png代码:默认情况下,logic_measure_movement 直接调用 SetAbsOrigin。改用 Teleport 可以正确更新实体插值,并且可能(或可能不)解决上述描述的碰撞物理警告。

键值

Name(en) (targetname) <target_source>[ Edit ]
这个名称是其他实体通过 输入/输出(en) 或其他 关键值(en)(如 parentnametarget) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告(en) 中。
参见: 所有实体均可使用的 通用键值、输入与输出(en)
Entity to Measure (MeasureTarget) <target_destination>
要测量其移动的实体。
Measure Reference (MeasureReference) <target_destination>
要测量的实体的移动将相对于此实体进行测量。
Entity to Move (Target) <target_destination>
此实体将被移动以模仿要测量的实体的运动。
Movement Reference (TargetReference) <target_destination>
要移动的实体将相对于此实体移动。
Movement scale (TargetScale) <浮点型(en)>
Measurement Type (MeasureType) <choices>
要测量的内容。
  • 0 : 位置
  • 1 : 视线位置

输入

Note.png注意:以下输入不支持将 !activator/!caller/!self 作为参数


SetMeasureTarget <字符串(en)>
设置要测量的实体,应测量其移动。
SetMeasureReference <字符串(en)>
设置测量参考实体。
Target <字符串(en)>
设置要移动的实体,该实体将被移动以模仿被测量的实体。
Note.png注意:此输入在代码中不存在,仅存在于 FGD 中。请使用 SetTarget 代替。
SetTarget <字符串(en)> 不存在于FGD!
设置要移动的实体,该实体将被移动以模仿被测量的实体。
SetTargetReference <字符串(en)>
设置移动参考实体。
SetTargetScale <浮点型(en)>
设置用于除以测量到的移动的缩放比例。
Enable
启用 logic_measure_movement。
Disable
禁用 logic_measure_movement。