前言

本章将会告诉你如何实现角色拾取武器。

武器道具会在地上

当角色与武器重叠的时候,角色会拾取武器。

创建C++文件

右击空白处,新建继承Item的Weapon类。

.h 文件

public: AWeapon();UPROPERTY(VisibleAnywhere, BlueprintReadOnly)USkeletalMeshComponent* Mesh; // 声明存放武器的变量virtual void OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor,UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) override;// 重写开始重叠函数void Equip(class ARole* owner); //  给角色装配武器函数

.cpp 文件

  • 构造函数

添加头文件:#include "Components/SkeletalMeshComponent.h"
创造骨架网格组件。并且让他依附在父类的静态网格体上,应为父类的静态网格体是可以自己旋转的,所以也就实现了骨架网格组件的旋转。

Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh"));
Mesh->SetupAttachment(MeshComp);
  • OnOverlapBegin

添加头文件:#include "Role.h" 自己的角色类。
使用父类的重叠函数,然后还要加上武器装备的判断。

Super::OnOverlapBegin(OverlappedComponent, OtherActor, OtherComp, OtherBodyIndex, bFromSweep, SweepResult);
if (OtherActor) {ARole* role = Cast<ARole>(OtherActor);if (role) {Equip(role);}
}

注意:将Item中OnOverlapBegin函数的Destroy()删掉,然后再拾取类和爆炸类的OnOverlapBegin函数中加上,这样就避免了,碰撞之后武器消失。

  • Equip

添加头文件:

#include "Particles/ParticleSystemComponent.h"
#include "Components/SphereComponent.h"
#include "Engine/SkeletalMeshSocket.h"

装配武器的函数实现,首先要判断是否有角色指针传入。
然后将骨架网格组件的所以碰撞通道设置为忽略,取消物理碰撞,旋转速率、粒子特效都要取消,因为他只是粘在手上,AttachToComponentowner->GetMesh()FAttachmentTransformRules::SnapToTargetNotIncludingScale的形式依附在"WEAPON_R"插槽上。
在球形组件的重叠反应中间将重叠开始函数移出。

AttachToComponent有四种依附形式:
KeepRelativeTransform(保持两个物体之间的相对位置不变)
KeepWorldTransform(保持连个物体在世界的位置不变)
SnapToTargetNotIncludingScale(保持物体的缩放对齐到目标上)
SnapToTargetIncludingScale(随目标的缩放)

if (owner) {Mesh->SetCollisionResponseToAllChannels(ECR_Ignore);Mesh->SetSimulatePhysics(false);AttachToComponent(owner->GetMesh(), FAttachmentTransformRules::SnapToTargetNotIncludingScale, "WEAPON_R");Rotate = false;ParticleComp->SetActive(false);SpereComp->OnComponentBeginOverlap.RemoveDynamic(this, &AItem::OnOverlapBegin);
}

上面操作编译完成之后,生成以他为父类的蓝图。

设置"WEAPON_R"插槽:

打开我们角色的蓝图,点击Mesh, 然后看到
点击查找:

然后双击进入,点击骨架:

在左边找到右手,


右击出现↓,然后点击,找到我们的武器道具。

调整到合适的位置。

拖动蓝图到世界中,运行即可。

【UE4 C++】角色拾取、替换武器(上)相关推荐

  1. Array王锐大神力作:osg与PhysX结合系列内容——第5节 角色动画效果(上)

    [Array王锐大神力作]osg与PhysX结合系列内容--角色动画效果(上) 物理引擎先放一边 动画库ozz-animation 动画资源管理 载入和预处理动画 合并到OSG显示 物理引擎先放一边 ...

  2. [unreal4入门系列之十] UE4添加角色到场景中

    现在我们已经有了一个场景并且运行了,我们需要添加一个角色到场景中.要这样做,我们必须从UE4的GameFramework类继承它. 一. 打开上次创建的关卡 如果你已经关闭了项目,并且保存了上次创建的 ...

  3. Unreal UE4 、角色换色解决方案—多象限UV—及渲染材质到贴图(CanvastoRenderTarget)(渲染多象限UV)

    工作中遇到一个比较棘手的问题,策划需要对角色进行换色,还要进行一系列的特效展示, 应用平台是手机端,并不能做过于复杂的换色逻辑,所以想到用多象限UV 和CanvastoRenderTarget (有多 ...

  4. UE4(虚幻4)拾取钥匙开门

    这篇文章是我看哔哩哔哩上学习的笔记,学习的地址如下: https://www.bilibili.com/video/BV164411Y732?t=168&p=15 因本人才疏学浅,如有错误之处 ...

  5. 核爆rpg手机版_好嗨游戏:不玩吃亏 ,20款全世界最佳移动RPG角色扮演游戏(上)...

    文章首发于:好嗨游戏 RPG(角色扮演游戏)毫无疑问是有史以来最好的游戏类型了,它也是兼容性最好的游戏类型,可以和其他各种类型结合形成新的有趣的游戏,比如在MOBA游戏中融入RPG的元素,同时它也比其 ...

  6. fiddler抓包工具-- 本地资源替换线上文件

    在开发过程中,我们经常会遇到修改线上某个js,调试修复bug.如果测试环境不满足测试场景.只能将线上的某个文件直接替换成本地的测试文件.不通过上线的手段,就可以达到测试目的. 在fiddler中,就提 ...

  7. VIP客户服务系统设计(四)——按用户角色构思系统功能(上)

    原本本期计划开始进入编写实战阶段的阐述,但考虑到读者可能对系统需求及框架不甚了解,所以,有必要将总体的架构与实现的功能先做一个简单的介绍.下面就按用户角色来讲述系统所实现的功能. 一.客户经理(支行) ...

  8. UE4查看材质在android设备上的性能开销

    在材质编辑器中点击平台统计(Platform Stats)图标即可查看材质在不同平台上的开销. 要查看 Android 的统计数据,需要先安装 Mali离线编译器.没有离线编译器就无法看到Androi ...

  9. UE4给角色赋予动画

    创建Blend Space 1D 选择动画,命名为:IdleWalkRun_BS1D 编辑动画,编辑横轴,并且把动画拖动到界面上设计动画的位置 创建C++类: MainAnimInstance // ...

  10. Python替换图片上一些颜色

    之前做的论文配图颜色太浅,被要求修改,但原图稿已丢失,无奈使出此招. 先找一张你要替换颜色的照片,我这个保存的PNG格式的.看 ,就是下面这只叮当猫! 替换前的图片 很重要的一个步骤,用颜色识别工具对 ...

最新文章

  1. 谈谈现在的状况,顺便给以后找工作的和我一样的毕业生说说
  2. Flex 学习笔记 动态设置itemRenderer
  3. quartus编译错误不支持芯片_硒鼓粉盒芯片不识别、耗材佘量错误、打印机亮红灯问题解决方法...
  4. python列表常用方法
  5. Centos 7 下 Corosync + Pacemaker + DRBD + psc + crmsh 实现 mysql 服务高可用
  6. 转帖一篇:截取密码(VC++)学习消息VC++的好处
  7. Ubuntu 迁移 /tmp 到别的硬盘
  8. 云原生网关开源、自研、商业化三位一体战略背后的思考
  9. python(numpy,pandas12)——pandas plot 画图
  10. 微信小程序中使用圆形倒计时实例
  11. Java反射机制的缺点
  12. Nginx源码分析 - 基础数据结构篇 - hash表结构 ngx_hash.c(07)
  13. Android 5.1 Gallery2 模块编译不过解决办法
  14. linux播放csf文件
  15. 这个在线抠图工具,好用又免费,告别Photoshop繁杂操作
  16. dw网页制作教程百度云盘_Dreamweaver网页制作教程
  17. 淘宝 卖家信用等级的图示
  18. C++标准模板库(STL)(3) 之 vector map容器快速学习 (自学笔记)
  19. Panoramic 控件设计举例
  20. 了解云桌面,看这一篇文章就够了

热门文章

  1. 安装nagios出现的两个错误记录
  2. Vue表单输入绑定(v-model)
  3. 教你几个手机识别图片中的文字小技巧
  4. 【绝对好玩】我编过最好的游戏 o( ̄▽ ̄)d
  5. 上班第一天(2)--一个程序员的成长史(11)
  6. LG化学成为海水淡化领域膜领导品牌后,大举进军苦咸水反渗透膜市场
  7. 进击的开发者!第二期SWTC社区开发者大赛拉开序幕
  8. 记 · 寒风依旧 · 虎跑路和人生路
  9. AWK awk xxx xxx
  10. 关于ios9中得AddressBook和AddressBookUI框架过时问题