本文整理汇总了C++中AWeapon::AttachRootComponentTo方法的典型用法代码示例。如果您正苦于以下问题:C++ AWeapon::AttachRootComponentTo方法的具体用法?C++ AWeapon::AttachRootComponentTo怎么用?C++ AWeapon::AttachRootComponentTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AWeapon
的用法示例。
在下文中一共展示了AWeapon::AttachRootComponentTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EquipWeapon
void AMainCharacter::EquipWeapon(int32 NewInventorySlot)
{
UWorld* World = GetWorld();
World->GetTimerManager().PauseTimer(AutomaticFireTimerHandle);
World->GetTimerManager().ClearTimer(AutomaticFireTimerHandle);
FActorSpawnParameters SpawnParameters;
SpawnParameters.Owner = this;
SpawnParameters.Instigator = Instigator;
if (CurrentWeapon != NULL)
{
if (Inventory[NewInventorySlot] != NULL)
{
if (Inventory[NewInventorySlot]->GetDefaultObject<AWeapon>()->Config.Name != CurrentWeapon->Config.Name)
{
WeaponAmmoStorage[CurrentInventorySlot].CurrentSpareAmmo = CurrentWeapon->Config.CurrentSpareAmmo;
WeaponAmmoStorage[CurrentInventorySlot].CurrentMagazineAmmo = CurrentWeapon->Config.CurrentMagazineAmmo;
CurrentWeapon->Destroy();
AWeapon* Spawner = GetWorld()->SpawnActor<AWeapon>(Inventory[NewInventorySlot], SpawnParameters);
if (Spawner != nullptr)
{
Spawner->CollisionComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
Spawner->AttachRootComponentTo(FirstPersonMesh, "Equip", EAttachLocation::SnapToTarget);
CurrentWeapon = Spawner;
if (WeaponAmmoStorage[NewInventorySlot].CurrentSpareAmmo != -1 && WeaponAmmoStorage[NewInventorySlot].CurrentMagazineAmmo != -1)
{
CurrentWeapon->Config.CurrentSpareAmmo = WeaponAmmoStorage[NewInventorySlot].CurrentSpareAmmo;
CurrentWeapon->Config.CurrentMagazineAmmo = WeaponAmmoStorage[NewInventorySlot].CurrentMagazineAmmo;
}
CurrentInventorySlot = NewInventorySlot;
}
}
else
{
GEngine->AddOnScreenDebugMessage(0, 5.f, FColor::Yellow, "Weapon is already equiped!");
}
}
}
else
{
AWeapon* Spawner = GetWorld()->SpawnActor<AWeapon>(Inventory[NewInventorySlot], SpawnParameters);
if (Spawner)
{
Spawner->CollisionComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);
Spawner->AttachRootComponentTo(FirstPersonMesh, "Equip", EAttachLocation::SnapToTarget);
CurrentWeapon = Spawner;
CurrentInventorySlot = NewInventorySlot;
}
}
}