碰撞事件 | hyperPad Documentation
Logo
Documentation对象碰撞事件
对象

碰撞事件

Published 2017年3月20日
碰撞事件

Art Studio 学习指南

带骨骼的对象

本节介绍实时骨骼绑定更新,需要使用包含带骨骼对象功能的版本。该功能尚未确定公开发布日期。现有的精灵/对象工作流程仍受支持。

带骨骼的对象是一个场景对象。它的骨骼和身体部位是内部动画控制项,不能作为独立对象选择。Get Object 和 Get Objects By Tag 会返回角色的对象 ID,不会返回肢体 ID。碰撞事件、创建碰撞和忽略碰撞操作会基于对象配置的碰撞形状以及对象间的物理规则运行,而不是基于单独生成的骨骼碰撞箱。

像蹲下这样的视觉变化不会自动调整碰撞体的大小。请单独检查并配置场景碰撞。要读取肢体位置,请使用 Get Bone Transform。要携带独立的场景布景/运动学视觉对象,请使用 Attach Object to Bone。要替换肢体自身的图像,请使用 Set Rig Attachment。

有关对象与骨骼绑定的区别以及支持的控制项,请参阅带骨骼的对象与骨骼绑定行为。

说明

碰撞事件行为会在两个对象开始碰撞、停止碰撞或持续碰撞时触发事件。与标签搭配使用时,可以检查对象是否与多个对象发生碰撞。如果未指定要检查碰撞的对象 B,那么当对象 A 接触场景中的任何对象时,此行为都会触发。

发生碰撞时,此行为会触发一次事件。

碰撞与标签:

碰撞行为很智能,会将带标签的对象传递给使用相同标签的下一个行为。这样一来,你就可以对带有该标签的特定对象触发操作,而不是对所有带标签的对象触发操作。例如,如果要使用标签销毁单个敌人,请让碰撞行为和销毁行为使用相同的“enemy”标签。

如果两个连接行为的标签不同,那么操作会应用于场景中所有带有该标签的对象。

事件类型

开始碰撞

事件触发时触发一次

对象 A

默认情况下,这是当前选中的对象。你可以将其更改为场景中的任何其他对象。

对象 B

场景中用于检查碰撞的另一个对象。如果对象 B 留空,那么当对象 A 接触场景中的任何其他对象时,此行为都会触发。

世界坐标

开启后,此行为会输出相对于对象 A 或对象 B 的碰撞位置。

顶部

开启此选项后,当碰撞发生在对象 B 的顶面时,会触发事件。

底部

开启此选项后,当碰撞发生在对象 B 的底面时,会触发事件。

左侧

开启此选项后,当碰撞发生在对象 B 的左侧面时,会触发事件。

右侧

开启此选项后,当碰撞发生在对象 B 的右侧面时,会触发事件。

碰撞期间停止碰撞

事件触发时重复触发

对象 A

默认情况下,这是当前选中的对象。你可以将其更改为场景中的任何其他对象。

对象 B

场景中用于检查碰撞的另一个对象。如果对象 B 留空,那么当对象 A 接触场景中的任何其他对象时,此行为都会触发。

世界坐标

开启后,此行为会输出相对于对象 A 或对象 B 的碰撞位置。

事件触发时触发一次

对象 A

默认情况下,这是当前选中的对象。你可以将其更改为场景中的任何其他对象。

对象 B

场景中用于检查碰撞的另一个对象。如果对象 B 留空,那么当对象 A 接触场景中的任何其他对象时,此行为都会触发。

输出

X

(开始碰撞、碰撞期间)

这是碰撞发生位置沿 X 轴相对于对象 B 或对象 A 的具体坐标。如果启用了 世界坐标,则会输出相对于世界坐标系的水平位置。

Y

(开始碰撞、碰撞期间)

这是碰撞发生位置沿 Y 轴相对于对象 B 或对象 A 的具体坐标。如果启用了 世界坐标,则会输出相对于世界坐标系的垂直位置。

冲量

(开始碰撞)

当对象 A 与对象 B 发生碰撞时,此输出会提供作用力的冲量。

对象 A ID

此输出会提供对象 A 的对象 ID。

对象 B ID

此输出会提供对象 B 的对象 ID。

示例

如果你想让角色收集金币时增加分数,可以在角色上添加一个碰撞事件行为,将事件类型设为_开始碰撞_,然后将金币设为对象 B。如果场景中有很多金币,那么给金币添加标签,并使用该标签而不是指定对象 B,可能更合适。

下载示例项目

相关内容

创建碰撞

碰撞事件