目录
1. 新建一个工程,创建Basic关卡,添加一个第一人称游戏资源
2. 新建一个游戏模式基础、HUD和玩家控制器
在世界场景设置中设置游戏模式、默认Pawn、HUD和玩家控制器
3. 为了在屏幕中心标记一个点,这里打开“HUD_Player”,然后添加如下节点
此时运行就可以看到视口中心有个白色的正方形
4. 新建一个Actor蓝图,这里命名为“BP_Balloon”,表示气球
打开“BP_Balloon”,添加一个球形静态网格体
勾选“模拟物理”,质量设置为1公斤,取消勾选“启用重力”
?添加一个缆索组件
在视口中将缆索组件向下移动
?
将缆索组件的末端位置设置为(0,0,-100),解算器迭代设置为10,缆绳宽度设为1
添加一个物理约束组件
向下移动50cm
将静态网格体命名为“Ballon”
再次选中物理约束组件,设置组件名称2为“Balloon”,这样就可以对名为“Balloon”的组件进行约束
在“Linear Limits”中设置“X运动”、“Y运动”、“Z运动”为“受限”,限制值为500,表示“Balloon”在三个轴向上的运动距离都被限制在500内
在事件图表中为“Balloon”添加垂直向上的作用力
将“BP_Balloon”移入视口内
此时运行可以看到如下效果
在“BP_Balloon”的事件图表中添加一个自定义事件,命名为“AttachComponent”,该事件拥有三个输入参数,名称和参数类型如下
该事件逻辑如下
6. 打开玩家控制器“PC_Player”,在事件图表中添加如下节点,表示按下F键会从第一人称摄像机发出一条射线检测
7. 打开项目设置,新建一个检测通道,这里命名为“Trace”
8. 回到“PC_Player”的事件图表中,设置引脚“Trace Channel”的值为“Trace”
继续添加如下节点,表示如果检测到碰撞通道为“Trace”的物体,就生成气球,然后将检测到的物体附加到气球上
9. 为了防止玩家角色的胶囊体组件会挡住发出的检测射线,这里可以在“BP_FirstPersonCharacter”设置胶囊体组件的碰撞预设为忽视“Trace”通道的碰撞检测
9. 接下来就可以测试气球是否可以吊起其他物体了。在场景中放置一个物体,勾选“模拟物理”
运行效果如下所示
参考视频: