【UE4 RTS】07-Camera Boundaries

前言

本篇实现的效果是当CameraPawn移动到地图边缘时会被阻挡。

效果

步骤

1. 打开项目设置,在“引擎-碰撞”中,点击“新建Object通道”

【UE4 RTS】07-Camera Boundaries_第1张图片

 新建通道命名为“MapBoundaries”,然后点击接受

【UE4 RTS】07-Camera Boundaries_第2张图片

【UE4 RTS】07-Camera Boundaries_第3张图片

2. 向视口中添加 阻挡体积

【UE4 RTS】07-Camera Boundaries_第4张图片

 调整阻挡体积的缩放

【UE4 RTS】07-Camera Boundaries_第5张图片

【UE4 RTS】07-Camera Boundaries_第6张图片

向四个边界都添加阻挡体积

【UE4 RTS】07-Camera Boundaries_第7张图片

 可以看到我们的阻挡体积可以离地图边缘稍微远一点【UE4 RTS】07-Camera Boundaries_第8张图片

 添加好的阻挡体积如下【UE4 RTS】07-Camera Boundaries_第9张图片

 在选中者4个阻挡体积的前提下,碰撞预设选择自定义,对象类型选择“MapBoundaries”,碰撞响应中除了Visible选择忽略,其他都选择阻挡。

【UE4 RTS】07-Camera Boundaries_第10张图片

 3. 打开“RTS_CameraPawn_BP”,选中静态网格体组件“Sphere”

 【UE4 RTS】07-Camera Boundaries_第11张图片

静态网格体组件“Sphere”的碰撞预设设置为自定义,然后除了“MapBoundaries”设置为阻挡,其他所有的碰撞响应都设置为忽略。

【UE4 RTS】07-Camera Boundaries_第12张图片

 删除场景组件,然后将“Sphere”作为根组件

【UE4 RTS】07-Camera Boundaries_第13张图片

 将弹簧臂组件的Y轴旋转角度重新设置为70°

【UE4 RTS】07-Camera Boundaries_第14张图片

在玩家控制器“RTS_PlayerController_BP”中检查关于CameraPawn移动的逻辑,检查“添加Actor本地偏移”和“设置Actor位置”节点是否勾选了“Sweep”引脚,如果不勾选,CameraPawn在遇到阻挡体积时是不会被阻挡的。

【UE4 RTS】07-Camera Boundaries_第15张图片

【UE4 RTS】07-Camera Boundaries_第16张图片

此时运行游戏可以看到当CameraPawn移动到地图边缘会被阻挡体积阻挡,效果如文章开头所示。

你可能感兴趣的:(#,虚幻4,RTS游戏,ue4)