前言
本篇实现的效果是当CameraPawn移动到地图边缘时会被阻挡。
效果
步骤
1. 打开项目设置,在“引擎-碰撞”中,点击“新建Object通道”
新建通道命名为“MapBoundaries”,然后点击接受
2. 向视口中添加 阻挡体积
调整阻挡体积的缩放
向四个边界都添加阻挡体积
可以看到我们的阻挡体积可以离地图边缘稍微远一点
添加好的阻挡体积如下
在选中者4个阻挡体积的前提下,碰撞预设选择自定义,对象类型选择“MapBoundaries”,碰撞响应中除了Visible选择忽略,其他都选择阻挡。
3. 打开“RTS_CameraPawn_BP”,选中静态网格体组件“Sphere”
静态网格体组件“Sphere”的碰撞预设设置为自定义,然后除了“MapBoundaries”设置为阻挡,其他所有的碰撞响应都设置为忽略。
删除场景组件,然后将“Sphere”作为根组件
将弹簧臂组件的Y轴旋转角度重新设置为70°
在玩家控制器“RTS_PlayerController_BP”中检查关于CameraPawn移动的逻辑,检查“添加Actor本地偏移”和“设置Actor位置”节点是否勾选了“Sweep”引脚,如果不勾选,CameraPawn在遇到阻挡体积时是不会被阻挡的。
此时运行游戏可以看到当CameraPawn移动到地图边缘会被阻挡体积阻挡,效果如文章开头所示。