我在学习装备角色的时候遇到两个问题,1.武器无法加载到两个网格体 2.第三人称动画不能随镜头上下点头

我在学习UE5.7官方文档入门教程里的第一人称冒险游戏,在学习到装备角色的时候遇到两个问题。

1.一个武器资源无法同时加载到第一人称和第三人称网格体上,后一个加载的网格体上不会出现武器。我尝试再创建一个武器副本加载到另一个网格体,并且对玩家隐藏来达到只看到第一视角的武器,并且第三视角的影子上有正常的武器影子,可能是我隐藏的的方法不对,无法做到只隐藏武器而保留影子。

2.加载到第三人称的动画不能随镜头上下点头。

这是官网文档链接:用C++工具装备角色 | 虚幻引擎 5.7 文档 | Epic Developer Community

下面是武器绑定到角色部分的代码:

void AMyCharacter::AttachTool(UEquippableToolDefinition* ToolDefinition)
{
// 只有角色没有该工具时才允许添加
if (not IsToolAlreadyOwned(ToolDefinition))
{
AEquippableToolBase* ToolToEquip = GetWorld()->SpawnActor(ToolDefinition->ToolAsset, this->GetActorTransform());
// 将工具附加到角色
// 当为true时,虚幻引擎会将两个物体接合在一起,以便它们在移动时作为一个整体交互。 一些常用的附加规则包括KeepRelative(保持与父级的相对变换)、KeepWorld(保持世界变换)和SnapToTarget(对齐到父级变换)
FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true);
// 将工具附加到角色的右手
ToolToEquip->AttachToActor(this, AttachmentRules);
ToolToEquip->AttachToComponent(FirstPersonMeshComponent, AttachmentRules, FName(TEXT(“HandGrip_R”)));

  //AEquippableToolBase* ToolToEquip2 = GetWorld()->SpawnActor<AEquippableToolBase>(ToolDefinition->ToolAsset, this->GetActorTransform());
  ToolToEquip->AttachToActor(this, AttachmentRules);
  ToolToEquip->AttachToComponent(GetMesh(), AttachmentRules, FName(TEXT("HandGrip_R")));
  ToolToEquip->OwningCharacter = this;
  GEngine->AddOnScreenDebugMessage(-1, 500.0f, FColor::Blue, GetOwner()->GetName());
  // 将工具添加到角色的物品库中
     InventoryComponent->ToolInventory.Add(ToolDefinition);
  
  // 设置工具的动画实例类
  GetMesh()->SetAnimInstanceClass(ToolToEquip->ThirdPersonToolAnim->GeneratedClass);
  FirstPersonMeshComponent->SetAnimInstanceClass(ToolToEquip->FirstPersonToolAnim->GeneratedClass);

  EquippedTool = ToolToEquip;
  // Get the player controller for this character
  if (APlayerController* PlayerController = Cast<APlayerController>(Controller))
  {
  	if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController->GetLocalPlayer()))
  	{
  		// 添加工具输入映射,因为设置优先级为1高于默认输入映射,所有有相同输入的映射,优先执行此映射,优先级数字越大的优先级越高
  		Subsystem->AddMappingContext(ToolToEquip->ToolMappingContext, 1);
  	}
  	ToolToEquip->BindInputAction(UseAction);
  }

}
}

向各位大佬求教。