[UE4]扔枪
1.把枪Detach掉:DetachFromActor

3个都选择“Keep World”
2.模拟物理
3.给一个向前的速度
4.切枪,到上一个武器,或者捡起脚底下的武器


注意Get Component by Class的搜索范围:因为是在weapon枪支组件内部调用该方法,因此搜索范围仅限于weapon的内部组件。weapon的子类都添加有Mesah的组件。


StaticMesh继承与MeshComponent

这里的“Mesh”也是“StaticMesh”组件,因此
可以搜索到weapon子类里面的Mesh对象
模拟物理引起的问题:因为设置的是组件子节点模拟物理,所以扔出去的枪模型跟组件坐标位置不重叠。

解决这样的问题的办法是:把跟根节点设置为StaticMesh并设置模拟物理:
1.添加一个Static Mesh组件,并命名为Root

2.拖拽创建好的Root,拖放到默认生成出来的“DefaultSceneRoot”上面,Root组件就会变成跟根组件了。

3.根节点Root的“Static Mesh”如果为空的话,模拟物理是无效的。

4.可以添加一个很小很小的Static Mesh:在地图场景中添加一个 Box Brush,设置长宽高为0.1,并转换成 Static Mesh,命名为 Small Mesh

5.设置Root的Static Mesh为上一步创建好的SmallTaticMesh。虽然界面上的“Simulate Physics(模拟物理)”还是不能使用,但是通过蓝图函数
是有效的。

6.Get Component by Class是从组件根节点往下开始搜索,只要找到一个符合条件的组件就立即返回,所以这里会返回Root组件。

不会返回这里的
Mesh组件
7.这样扔掉的枪的坐标就跟枪模型重叠了。

8.要先执行“开启碰撞”,再执行“开启模拟物理”,顺序不能反。如果顺序反了,枪就会掉下的时候会穿过地板,不会停留在地板上面。

9.扔掉的首先手枪准心跟刀的准心一起出现了。

因此还要执行“OnUnEquip”操作去掉扔掉枪的准心。

这样就只剩下刀的准心了。

10.为了方便设置枪模型的碰撞,因此在武器基类“Weapon”根节点下添加一个Static Mesh组件(命名为Mesh)替换在每个子武器类中添加的Satic Mesh组件(原来的名称也叫Mesh)。设置碰撞预设为“Custom”,把“Pawn(人物角色)”设为“Ignore(忽略)”

这样,当人走到碰到扔掉的枪的时候,枪就不会被弹飞出去了。
[UE4]扔枪的更多相关文章
- [UE4]扔枪后捡枪:Get Overlapping Actors
一.搜索碰撞体是否碰撞到枪,使用Get Overlapping Actors,只搜索Class Filter设置的对象类型.Get Overlapping Actors没有Class Filter参数 ...
- [UE4]把枪打飞addImpulse
一.武器如果没有开启模拟物理,会漂浮在空中 二.武器开启模拟物理,运行游戏的时候就会掉到地上了.之所以要加“Delay”延迟,是因为创建武器在先(没有持有人),持有武器动作在后,加上“delay”延迟 ...
- [UE4]捡枪
一.给角色添加碰撞胶囊体并添加On Component Begin Overlap事件 二.检查碰到的东西是不是武器 三.要捡的武器是否已经有主人.检查身上是否有同样类型的枪 五.把枪放到背包数组.关 ...
- [UE4]把枪抽象为一个类
- [UE4]解决角色影子的问题
一.自己应该是不能看到第一人称模型的影子,只要将第一人称模型影子不投影的就可以了.Cast Shadow勾选去掉就不会有影子了. 二.在第一人称视角中,枪支也是不应该有投影的.在weanpon中新增2 ...
- [UE4]手持多把枪的位置调节
如果一个角色有多把枪,但是骨骼插槽只有一个,可以通过直接在枪蓝图中调整枪的位置和旋转角度.
- [UE4]Drop,扔物品
一.Drop只要将Grab做的操作反着这一遍就可以:开启模拟物理.取消附加(使用:DetachFromActor方法,同样的rule也需要使用Keep World) 二.
- [UE4]创建多把枪,使用Class,参数的对象类型
先来说说函数输入参数的区别: 1.Object Reference 2.Class Reference 会出现可以让你选择一个类 3.Soft Object Reference 4.Soft Clas ...
- [UE4]角色增加挂点、增加枪
人物骨骼增加Socket(骨骼) 增加手持武器预览: 角色蓝图增加组件“Skeletal Mesh”(好像这叫骨骼模型吧),并拖放至人物“Mesh”下面作为子组件. 选中刚建好的“SkeletalMe ...
随机推荐
- PHP用户登录解析
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面 的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个 ...
- MySQL Binlog与数据变更
如果对满足WHERE条件数据执行UPDATE,而UPDATE未导致前后数据发生变化,这种情况下会产生二进制日志么? ========================================== ...
- terraform 几个方便的工具
几个方便的terraform 工具,方便了解terraform terraform-docs 方便的查看资源的信息(支持markdown,json 格式),对于ci/cd 很方便 项目地址 https ...
- KMPlayer速度步进设置及快捷键设置和同级视频自动加入播放列表
速度步进设置 快捷键设置 同级视频自动加入播放列表
- Hi3536DV100 SDK 安装以及升级使用说明
第一章 Hi3536DV100_SDK_Vx.x.x.x版本升级操作说明 如果您是首次安装本SDK,请直接参看第2章. 第二章 首次安装SDK1.Hi3536DV100 SDK包位置 在"H ...
- 列表(list)的增删改查
list 可以通过 索引,切片,切片加步长取出列表中的某个元素 列表的增: # 追加 append() 在列表的后面追加元素 # 插入 insert()在列表的某个位置插入元素 会加在你输入位置的 ...
- windows删除文件或目录CMD命令
rd/s/q 盘符:\某个文件夹 (强制删除文件文件夹和文件夹内所有文件)del/f/s/q 盘符:\文件名 (强制删除文件,文件名必须加文件后缀名)
- Quartz学习总结
一.基本介绍: Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现.该项目于 2009 年被 Terracotta 收购,目前是 Terraco ...
- [转]JDK自带工具之问题排查场景示例
最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇Java调优经验谈.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://java-performa ...
- django默认后台使用
1.初始化数据python manage.py migrate 2.创建超级用户python manage.py createsuperuser 然后按照提示输入就可以了 3.admin管理页面找不到 ...