本文整理汇总了C++中USceneComponent::GetAttachChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ USceneComponent::GetAttachChildren方法的具体用法?C++ USceneComponent::GetAttachChildren怎么用?C++ USceneComponent::GetAttachChildren使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类USceneComponent
的用法示例。
在下文中一共展示了USceneComponent::GetAttachChildren方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ComponentInstanceData
AActor::FActorTransactionAnnotation::FActorTransactionAnnotation(const AActor* Actor, const bool bCacheRootComponentData)
: ComponentInstanceData(Actor)
{
USceneComponent* ActorRootComponent = Actor->GetRootComponent();
if (bCacheRootComponentData && ActorRootComponent && ActorRootComponent->IsCreatedByConstructionScript())
{
bRootComponentDataCached = true;
RootComponentData.Transform = ActorRootComponent->ComponentToWorld;
RootComponentData.Transform.SetTranslation(ActorRootComponent->GetComponentLocation()); // take into account any custom location
if (ActorRootComponent->GetAttachParent())
{
RootComponentData.AttachedParentInfo.Actor = ActorRootComponent->GetAttachParent()->GetOwner();
RootComponentData.AttachedParentInfo.AttachParent = ActorRootComponent->GetAttachParent();
RootComponentData.AttachedParentInfo.AttachParentName = ActorRootComponent->GetAttachParent()->GetFName();
RootComponentData.AttachedParentInfo.SocketName = ActorRootComponent->GetAttachSocketName();
RootComponentData.AttachedParentInfo.RelativeTransform = ActorRootComponent->GetRelativeTransform();
}
for (USceneComponent* AttachChild : ActorRootComponent->GetAttachChildren())
{
AActor* ChildOwner = (AttachChild ? AttachChild->GetOwner() : NULL);
if (ChildOwner && ChildOwner != Actor)
{
// Save info about actor to reattach
FActorRootComponentReconstructionData::FAttachedActorInfo Info;
Info.Actor = ChildOwner;
Info.SocketName = AttachChild->GetAttachSocketName();
Info.RelativeTransform = AttachChild->GetRelativeTransform();
RootComponentData.AttachedToInfo.Add(Info);
}
}
}
else
{
bRootComponentDataCached = false;
}
}
示例2: FSceneComponentInstanceData
FChildActorComponentInstanceData::FChildActorComponentInstanceData(const UChildActorComponent* Component)
: FSceneComponentInstanceData(Component)
, ChildActorName(Component->GetChildActorName())
, ComponentInstanceData(nullptr)
{
if (Component->GetChildActor())
{
ComponentInstanceData = new FComponentInstanceDataCache(Component->GetChildActor());
// If it is empty dump it
if (!ComponentInstanceData->HasInstanceData())
{
delete ComponentInstanceData;
ComponentInstanceData = nullptr;
}
USceneComponent* ChildRootComponent = Component->GetChildActor()->GetRootComponent();
if (ChildRootComponent)
{
for (USceneComponent* AttachedComponent : ChildRootComponent->GetAttachChildren())
{
if (AttachedComponent)
{
AActor* AttachedActor = AttachedComponent->GetOwner();
if (AttachedActor != Component->GetChildActor())
{
FAttachedActorInfo Info;
Info.Actor = AttachedActor;
Info.SocketName = AttachedComponent->GetAttachSocketName();
Info.RelativeTransform = AttachedComponent->GetRelativeTransform();
AttachedActors.Add(Info);
}
}
}
}
}
}