Version:

Non-uniform Scale 组件

Non-uniform Scale 组件允许实体沿每个局部轴缩放不同的量。 可以通过单击 Transform 组件上的 Add non-uniform scale 按钮来添加它。

Non-uniform Scale 组件与某些其他组件不兼容,这些组件如果不从根本上改变其特性,就无法进行非均匀缩放。例如,它与 Sphere Shape 组件不兼容,因为不均匀缩放球体会产生椭球体并破坏球体的特征对称性。

为避免倾斜问题,非均匀缩放仅应用于当前实体,不会传播到其子实体。

兼容的组件

以下是与Non-uniform Scale兼容的组件:

不兼容的组件

以下组件与 Non-uniform Scale 组件不兼容*,因为非均匀缩放会破坏组件所做的基本假设,或者因为它们需要大量工作才能正确支持非均匀缩放:

以下组件目前 不兼容 因为它们尚不受支持,但没有导致兼容性难以添加的根本原因:

EBus 请求总线接口

NonUniformScaleRequestBus 是用于 Non-uniform Scale 组件的请求总线。

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

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

GetScale

返回实体的非均匀缩放。

参数 None

返回值 实体的非均匀缩放值。 Type: Vector3

SetScale

设置实体的非均匀缩放。

参数 新的非均匀缩放值。 Type: Vector3

返回值 None

RegisterScaleChangedEvent

为更改实体的非均匀缩放时引发的 AZ::Event 注册处理程序。 参数 非均匀缩放更改事件的处理程序。 Type: NonUniformScaleChangedEvent::Handler

返回值 None

编辑器自动化

可以使用以下内容访问编辑器 Non-uniform Scale 组件的组件类型 ID 以进行编辑器自动化。

azlmbr.editor.EditorNonUniformScaleComponentTypeId

例如,可以添加 Non-uniform Scale 组件,并按如下方式修改缩放。

nonUniformScaleComponentId = azlmbr.editor.EditorNonUniformScaleComponentTypeId
azlmbr.editor.EditorComponentAPIBus(azlmbr.bus.Broadcast,'AddComponentsOfType', entityId, [nonUniformScaleComponentId])
azlmbr.entity.NonUniformScaleRequestBus(azlmbr.bus.Event, 'SetScale', entityId, azlmbr.math.Vector3(1.0, 2.0, 3.0))