附加

只有场景组件(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(随目标的缩放)
posted @ 2020-05-21 14:57  CodeWithMe  阅读(2266)  评论(0编辑  收藏  举报