Version:

Transform 组件

Transform 组件控制 3D 世界中实体的平移、旋转和缩放信息。当您在 O3DE Editor 中创建实体时,将自动添加 Transform 组件。平移是实体的坐标位置(x、y 和 z 轴)。旋转是实体绕其中心旋转的程度。统一比例是实体的尺寸与其原始大小相比,在每个方向上均匀应用。

World space 是指实体在关卡中的绝对平移、旋转和缩放。如果子实体附加到父实体,则 local space 是指实体相对于其父实体的平移、旋转和缩放。

Transform组件属性

Transform 组件具有以下属性:

Parent entity 分配为父级的实体。如果指定了父实体,则 Transform 组件将遵循父实体。

Transform 组件具有以下值:

Translate 本地位置(相对于父级),以米为单位。

Rotate 局部旋转(相对于父级),以度为单位。

Uniform Scale 局部比例,在每个方向上统一应用单个值。点击 Add non-uniform scale 按钮以添加 Non-uniform Scale 组件,该组件允许在实体的每个轴上使用不同的缩放值。

Parent activation 配置父实体激活时的转换行为。

Static 在运行时无法移动的实体。O3DE 中的某些系统处理静态实体的方式与处理可移动实体的方式不同(例如,渲染器可以优化静态实体,从而减少绘制它们所占用的资源)。

EBus 请求总线接口

TransformBusTransform 组件的请求总线。实体的变换是平移、旋转和缩放信息。

有关使用事件总线 (EBus) 接口的更多信息,请参阅 使用事件总线 (EBus) 系统.

将以下请求函数与 EBus 接口结合使用,以便与游戏的其他组件进行通信。

GetLocalTM

返回实体的本地转换。不包括父实体的转换。

参数 None

返回值 实体的本地转换。

SetLocalTM

设置实体相对于其父实体的本地转换,并通知所有侦听器。

参数 实体的本地转换。

返回值 None

GetWorldTM

返回实体的世界变换,包括父实体的变换。

参数 None

返回值 实体的世界转换。

SetWorldTM

设置世界变换并通知所有侦听器。

参数 实体的世界转换。

返回值 None

GetLocalAndWorld

检索实体的 local 和 world 转换。

参数 Transform [out] - Local transform,相对于父实体。 Transform [out] - World transform.

返回值 None

SetWorldTranslation

设置实体的世界空间平移。

参数 新的世界空间位置,以 x、y 和 z 坐标表示。 Type: Vector3

返回值 None

SetLocalTranslation

设置实体的局部空间平移,该平移相对于其父实体。

参数 新的本地空间位置,以 x、y 和 z 坐标为单位。 Type: Vector3

返回值 None

GetWorldTranslation

获取实体的世界空间平移。

参数 None

返回值 实体的世界空间,以 x、y 和 z 坐标表示。 Type: Vector3

GetLocalTranslation

获取实体的局部空间平移,该平移相对于其父实体。

参数 None

返回值 实体的局部空间,以 x、y 和 z 坐标为单位。 Type: Vector3

MoveEntity

在世界空间内移动实体。

参数 在世界空间、x、y 和 z 坐标中的偏移。 Type: Vector3

返回值 None

SetWorldX

设置实体在世界空间中的平移 x 轴坐标。

参数 世界空间中的 X 轴坐标。 Type: Float

返回值 None

SetWorldY

设置实体在世界空间中的平移 y 轴坐标。

参数 世界空间中的 Y 轴坐标。 Type: Float

返回值 None

SetWorldZ

设置实体在世界空间中的平移 z 轴坐标。

参数 世界空间中的 Z 轴坐标。 Type: Float

返回值 None

GetWorldX

获取实体在世界空间中的平移 x 轴坐标。

参数 None

返回值 世界空间中的 X 轴坐标。 Type: Float

GetWorldY

获取实体在世界空间中的平移 y 轴坐标。

参数 None

返回值 世界空间中的 Y 轴坐标。 Type: Float

GetWorldZ

设置实体在世界空间中的平移 z 轴坐标。

参数 None

返回值 世界空间中的 Z 轴坐标。 Type: Float

SetLocalX

设置实体在本地空间中的平移 x 轴坐标。

参数 局部空间中的 X 轴坐标。 Type: Float

返回值 None

SetLocalY

设置实体在本地空间中的平移 y 轴坐标。

参数 本地空间中的 Y 轴坐标。 Type: Float

返回值 None

SetLocalZ

设置实体在本地空间中的平移 z 轴坐标。

参数 局部空间的 Z 轴坐标。 Type: Float

返回值 None

GetLocalX

获取实体在本地空间中的平移 x 轴坐标。

参数 None

返回值 局部空间中的 X 轴坐标。 Type: Float

GetLocalY

获取实体在本地空间中的 y 轴坐标。

参数 None

返回值 本地空间中的 Y 轴坐标。 Type: Float

GetLocalZ

获取实体在本地空间中的 z 轴坐标。

参数 None

返回值 局部空间的 Z 轴坐标。 Type: Float

GetWorldRotation

获取世界变换围绕其旋转的每个主轴的弧度角度,顺序如下:z 轴、y 轴、x 轴。

参数 None

返回值 以弧度为单位的欧拉角,表示绕每个主轴的旋转程度。 Type: Vector3

GetWorldRotationQuaternion

获取表示世界旋转的四元数。

参数 None

返回值 表示世界旋转的四元数。 Type: Quaternion

SetLocalRotation

按以下顺序设置围绕每个主轴的局部旋转:z 轴、y 轴、x 轴。

参数 Vector3 表示围绕每个主轴旋转的弧度角。 Type: Vector3

返回值 None

SetLocalRotationQuaternion

使用四元数设置局部旋转矩阵。

参数 局部旋转矩阵。 Type: Quaternion

返回值 None

RotateAroundLocalX

围绕局部 x 轴旋转弧度角。

参数 绕局部 x 轴旋转的弧度角度。 Type: Float

返回值 None

RotateAroundLocalY

围绕局部 y 轴旋转弧度角。

参数 绕局部 y 轴旋转的弧度角度。 Type: Float

返回值 None

RotateAroundLocalZ

围绕局部 z 轴旋转弧度角。

参数 绕局部 z 轴旋转的弧度角度。 Type: Float

返回值 None

GetLocalRotation

获取按以下顺序旋转局部变换所围绕的每个主轴的弧度角度:z 轴、y 轴、x 轴。

参数 None

返回值 指示围绕每个主轴旋转的弧度量。 Type: Vector3

GetLocalRotationQuaternion

获取表示局部旋转的四元数。

参数 None

返回值 表示局部旋转的四元数。 Type: Quaternion

SetLocalUniformScale

设置变换的局部统一缩放。

参数 变换的局部统一缩放,均匀应用于每个轴。 Type: Float

返回值 None

GetLocalUniformScale

获取均匀缩放值,均匀应用于局部空间中的每个轴。

参数 None

返回值 Uniform scale 值,均匀应用于局部空间中的每个轴。 Type: Float

GetWorldUniformScale

获取均匀缩放值,均匀应用于世界空间中的每个轴。

参数 None

返回值 Uniform scale 值,均匀应用于世界空间中的每个轴。 Type: Float

GetParentId

返回父实体的 ID。如果实体没有父项,则实体 ID 无效。

参数 None

返回值 父级的 EntityID Type: Int

SetParent

设置实体的父实体并通知所有侦听器。实体的局部变换将移动到父实体的空间中,以保留实体的世界变换。

参数 EntityId - Parent entity ID Type: Int

返回值 None

SetParentRelative

设置实体的父实体,相对于父实体移动转换,并通知所有侦听器。此函数使用世界转换作为本地转换,并相对于父实体移动转换。

参数 EntityId - Parent entity ID Type: Int

返回值 None

GetChildren

返回实体的直接子项的实体 ID。

参数 None

返回值 Vector of EntityIds

GetAllDescendants

返回实体的所有后代的实体 ID。后代是实体的子项、子项的子项等。实体 ID 按宽度顺序排列。

参数 None

返回值 Vector of EntityIds

GetEntityAndAllDescendants

返回实体及其所有后代的实体 ID。后代是实体的子项、子项的子项等。实体 ID 按广度排序排在最前面,此实体的 ID 是列表中的第一个。

参数 None

返回值 Vector of EntityIds

IsStaticTransform

返回转换是否为静态。静态转换不会移动,也不会响应移动它的请求。

参数 None

返回值 Boolean

EBus Notification Bus Interface

TransformNotificationBusTransform 组件的通知总线。将以下通知函数与 EBus 界面结合使用,以便与游戏的其他组件进行通信。

有关使用事件总线 (EBus) 接口的更多信息,请参阅 使用事件总线 (EBus) 系统.

OnTransformChanged

指示实体的 local 或 world 转换已更改。

参数 Transform (变换) - 实体的新局部变换 Transform (转换) - 实体的新世界转换

OnParentChanged

表示实体的父级已更改。

参数 EntityId - 前一个父级的实体 ID。如果上一个父项没有,则实体 ID 无效。 EntityId - 新父级的实体 ID。如果没有新的父项,则实体 ID 无效。

OnChildAdded

表示已将子项添加到实体。

参数 EntityId - 添加的子项的实体 ID

OnChildRemoved

表示已从实体中删除子项。

参数 EntityId - 已删除子项的实体 ID