美文网首页
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