Zh/Logic measure movement: Difference between revisions
< Zh
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 2: | Line 2: | ||
{{CD|CLogicMeasureMovement|file1=logic_measure_movement.cpp}} | {{CD|CLogicMeasureMovement|file1=logic_measure_movement.cpp}} | ||
{{this is a|逻辑实体|name=logic_measure_movement}} | {{this is a|逻辑实体|name=logic_measure_movement}} 此实体会测量两个实体间的距离,之后用距离加到另一个移动实体,并将该位置应用于第四实体。 | ||
{{note|本文章由[[User:WoShiGeNiCheng|我是个昵称-hello]]翻译,如有不对地方请指出。本文章所讲述的实体比较复杂,建议自己建一个地图来测试理解。}} | |||
logic_measure_movement 的过程可以描述如下: | logic_measure_movement 的过程可以描述如下: | ||
# 获取''' | # 获取'''目标参考实体'''的位置。假设它是 <code>[100 225 0]</code>。 | ||
# 获取'''源参考实体'''的位置。假设它是 <code>[50 300 0]</code>。 | # 获取'''源参考实体'''的位置。假设它是 <code>[50 300 0]</code>。 | ||
# 将''' | # 将'''目标参考实体'''的位置减去'''源参考实体'''的位置,成“相对位置”差。如<code>[100 225 0]</code> - <code>[50 300 0]</code> = <code>[50 -75 0]</code>。 | ||
# 获取''' | # 获取'''源实体'''的位置。假设它是 <code>[150 50 100]</code>。 | ||
# 将“相对差值”的位置加''' | # 将“相对差值”的位置加'''源实体'''的位置。例如 <code>[50 -75 0]</code> + <code>[150 50 100]</code>,等于 <code>[200 -25 100]</code>。 | ||
# 将'''目标实体'''传送到“相对差值”与'''源实体''' | # 将'''目标实体'''传送到“相对差值”与'''源实体'''位置的总和处,所以源实体会被传送到 <code>[200 -25 100]</code>。 | ||
logic_measure_movement 非常灵活,可用于让一个实体模仿另一个房间中另一个实体的移动(例如,{{ent|point_camera}} 在 script_intro 中)。它也可以用作父子层级关系的替代方案,特别是因为它可以模拟物理对象上的父子关系,而物理对象不支持父子关系,通常使用 {{ent|phys_constraint}}。 | logic_measure_movement 非常灵活,可用于让一个实体模仿另一个房间中另一个实体的移动(例如,{{ent|point_camera}} 在 script_intro 中)。它也可以用作父子层级关系的替代方案,特别是因为它可以模拟物理对象上的父子关系,而物理对象不支持父子关系,通常使用 {{ent|phys_constraint}}。 | ||
| Line 24: | Line 26: | ||
{{KV|Entity to Move|intn=Target|target_destination|目标实体,让此实体模仿源实体的运动。}} | {{KV|Entity to Move|intn=Target|target_destination|目标实体,让此实体模仿源实体的运动。}} | ||
{{KV|Movement Reference|intn=TargetReference|target_destination|目标参考实体。}} | {{KV|Movement Reference|intn=TargetReference|target_destination|目标参考实体。}} | ||
{{KV|Movement scale|intn=TargetScale|float| | {{KV|Movement scale|intn=TargetScale|float|缩放比例,将移动距离除以比例之后再讲目标实体传送( 移动距离 / 比例 )。1 = 移动的距离不变,2 = 目标实体移动距离是测量距离的一半,0.5 = 目标实体移动距离是测量距离的两倍。}} | ||
{{KV|Measurement Type|intn=MeasureType|choices|测量内容。}} | {{KV|Measurement Type|intn=MeasureType|choices|测量内容。}} | ||
:* 0 : 位置 | :* 0 : 位置 | ||
| Line 32: | Line 34: | ||
{{note|以下输入不支持将 <kbd>!activator/!caller/!self</kbd> 作为参数}} | {{note|以下输入不支持将 <kbd>!activator/!caller/!self</kbd> 作为参数}} | ||
{{I|SetMeasureTarget| | {{I|SetMeasureTarget|设置源实体,应测量其移动。|param=string}} | ||
{{I|SetMeasureReference| | {{I|SetMeasureReference|设置源参考实体。|param=string}} | ||
{{I|<s>Target</s>|<s> | {{I|<s>Target</s>|<s>设置目标实体,该实体将模仿源实体的运动。</s>|param=string}}{{note|此输入在代码中不存在,仅存在于 FGD 中。请使用 <tt>SetTarget</tt> 代替。}} | ||
{{I|SetTarget| | {{I|SetTarget|设置目标实体,该实体将模仿源实体的运动。|param=string|nofgd=1}} | ||
{{I|SetTargetReference| | {{I|SetTargetReference|设置目标参考实体。|param=string}} | ||
{{I|SetTargetScale| | {{I|SetTargetScale|设置用于除移动距离的缩放比例。|param=float}} | ||
{{I|Enable|启用 logic_measure_movement。}} | {{I|Enable|启用 logic_measure_movement。}} | ||
{{I|Disable|禁用 logic_measure_movement。}} | {{I|Disable|禁用 logic_measure_movement。}} | ||
<!-- 我是个昵称-hello 翻译 --> | <!-- 我是个昵称-hello 翻译 --> | ||
Latest revision as of 21:26, 5 December 2025
| CLogicMeasureMovement |
logic_measure_movement是一个逻辑实体,可在所有的
起源 游戏中使用。 此实体会测量两个实体间的距离,之后用距离加到另一个移动实体,并将该位置应用于第四实体。
logic_measure_movement 的过程可以描述如下:
- 获取目标参考实体的位置。假设它是
[100 225 0]。 - 获取源参考实体的位置。假设它是
[50 300 0]。 - 将目标参考实体的位置减去源参考实体的位置,成“相对位置”差。如
[100 225 0]-[50 300 0]=[50 -75 0]。 - 获取源实体的位置。假设它是
[150 50 100]。 - 将“相对差值”的位置加源实体的位置。例如
[50 -75 0]+[150 50 100],等于[200 -25 100]。 - 将目标实体传送到“相对差值”与源实体位置的总和处,所以源实体会被传送到
[200 -25 100]。
logic_measure_movement 非常灵活,可用于让一个实体模仿另一个房间中另一个实体的移动(例如,point_camera 在 script_intro 中)。它也可以用作父子层级关系的替代方案,特别是因为它可以模拟物理对象上的父子关系,而物理对象不支持父子关系,通常使用 phys_constraint。
SetAbsOrigin。改用 Teleport 可以正确更新实体插值,并且可能(或可能不)解决上述描述的碰撞物理警告。键值
- Name (targetname) <target_source>[ Edit ]
- 这个名称是其他实体通过 输入/输出 或其他 关键值(如
parentname或target) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告 中。参见: 所有实体均可使用的 通用键值、输入与输出
- 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) <浮点型>
- Measurement Type (MeasureType) <choices>
- 测量内容。
- 0 : 位置
- 1 : 眼睛位置(可以以此捕捉玩家眼球的角度)
输入
- SetMeasureTarget <字符串>
- 设置源实体,应测量其移动。
- SetMeasureReference <字符串>
- 设置源参考实体。
Target<字符串>设置目标实体,该实体将模仿源实体的运动。
注意:此输入在代码中不存在,仅存在于 FGD 中。请使用 SetTarget 代替。
- SetTargetReference <字符串>
- 设置目标参考实体。
- SetTargetScale <浮点型>
- 设置用于除移动距离的缩放比例。
- Enable
- 启用 logic_measure_movement。
- Disable
- 禁用 logic_measure_movement。