本文整理汇总了C++中UPrimitiveComponent::GetRigidBodyState方法的典型用法代码示例。如果您正苦于以下问题:C++ UPrimitiveComponent::GetRigidBodyState方法的具体用法?C++ UPrimitiveComponent::GetRigidBodyState怎么用?C++ UPrimitiveComponent::GetRigidBodyState使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UPrimitiveComponent
的用法示例。
在下文中一共展示了UPrimitiveComponent::GetRigidBodyState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GatherCurrentMovement
void AActor::GatherCurrentMovement()
{
UPrimitiveComponent* RootPrimComp = Cast<UPrimitiveComponent>(GetRootComponent());
if (RootPrimComp && RootPrimComp->IsSimulatingPhysics())
{
FRigidBodyState RBState;
RootPrimComp->GetRigidBodyState(RBState);
ReplicatedMovement.FillFrom(RBState);
}
else if(RootComponent != NULL)
{
// If we are attached, don't replicate absolute position
if( RootComponent->AttachParent != NULL )
{
// Networking for attachments assumes the RootComponent of the AttachParent actor.
// If that's not the case, we can't update this, as the client wouldn't be able to resolve the Component and would detach as a result.
if( AttachmentReplication.AttachParent != NULL )
{
AttachmentReplication.LocationOffset = RootComponent->RelativeLocation;
AttachmentReplication.RotationOffset = RootComponent->RelativeRotation;
AttachmentReplication.RelativeScale3D = RootComponent->RelativeScale3D;
}
}
else
{
ReplicatedMovement.Location = RootComponent->GetComponentLocation();
ReplicatedMovement.Rotation = RootComponent->GetComponentRotation();
ReplicatedMovement.LinearVelocity = GetVelocity();
ReplicatedMovement.bRepPhysics = false;
}
}
}