美文网首页
UE4 角色拾取武器

UE4 角色拾取武器

作者: Sirius_lwq | 来源:发表于2019-06-15 21:43 被阅读0次

角色设置

为了使角色能够“抓取”武器,需要在骨骼中添加功能---socket,即插槽。
找到放置武器的位置,右键添加插槽即可(项目不同可能示例截图不一致,但做法相同)


添加武器插槽.png

放置后,直接绑定会发现武器位置和想象中不太一样;这里我们右键为socket添加预览,通过预览调整武器。


武器位置调整.png

蓝图实现

武器拿到手中主要通过AttachToComponent方法,既可以在武器蓝图脚本实现也可以在角色脚本中实现,原理相同。

  • 首先为武器添加事件OnComponentBeginOverlap;
  • 然后检测碰撞物体是否为角色
  • AttachToComponent
  • (有时需要取消物体与角色的碰撞或其它调整,视具体情况而定)
    如下:
    这里注意AttachToComponent的具体设置,target为attach的物体,parent为被attach的scence component,此处为武器的蓝图脚本,因此target为self;parent应设置在角色的mesh上。规则为Snap to Target


    蓝图

代码实现

void AChilikoCollectActor::NotifyActorBeginOverlap(AActor* OtherActor)
{
  Super::NotifyActorBeginOverlap(OtherActor);

  //碰撞后提示、特效等处理

  if (Role == ROLE_Authority)
  {
    AChilikoCharacter* MyCharacter = Cast<AChilikoCharacter>(OtherActor);
    if (MyCharacter)
    {
        
        // 拾取前的处理,如播放动画/按键提示等。
        AttachToComponent(MyCharacter->GetRootComponent(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, FName(TEXT("hand_rSocket")));
        // 拾取后的处理
    }
  }
}

当然,也可以通过其它碰撞处理方法实现。

相关文章

网友评论

      本文标题:UE4 角色拾取武器

      本文链接:https://www.haomeiwen.com/subject/cdymfctx.html