只有場景組件(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(隨目標的縮放)