附加
只有场景组件(USceneComponent 及其子类)可以彼此附加,因为需要变换来描述子项和父项组件之间的空间关系。
虽然场景组件可以拥有任意数量的子项,但只能拥有一个父项,或可直接放置在场景中。
场景组件系统不支持附加循环。
附加组件的方法分别是 SetupAttachment 和 AttachToComponent。
SetupAttachment:
void SetupAttachment
(
USceneComponent * InParent,
FName InSocketName
)
- 通常在构造函数中、以及处理尚未注册的组件时调用。
AttachToComponent:
void AttachToComponent
(
USceneComponent * Parent,
const FAttachmentTransformRules & AttachmentRules,
FName SocketName
)
- 立即将场景组件附加到另一个组件,通常在游戏进行中调用。
- 允许Actor彼此之间进行附加,方法是将一个Actor的根组件附加到属于另一个Actor的组件。
FAttachmentTransformRules:
- KeepRelativeTransform(保持两个物体之间的相对位置不变)
- KeepWorldTransform(保持连个物体在世界的位置不变)
- SnapToTargetNotIncludingScale(保持物体的缩放对齐到目标上)
- SnapToTargetIncludingScale(随目标的缩放)