【UE4 RTS】04-Camera Pan

前言 

本篇实现了CameraPawn的旋转功能。

效果 

步骤

1. 打开项目设置,添加两个操作映射

【UE4 RTS】04-Camera Pan_第1张图片

2. 打开玩家控制器“RTS_PlayerController_BP”,新建一个浮点型变量,命名为“PanSpeed”

【UE4 RTS】04-Camera Pan_第2张图片

【UE4 RTS】04-Camera Pan_第3张图片

在事件图表中添加如下节点

【UE4 RTS】04-Camera Pan_第4张图片

 此时运行游戏可以发现当鼠标移动时,CameraPawn会围绕Z轴进行相应的旋转,但是按下W键时前进方向并不是旋转后的正方向:

上面的问题在下一篇文章中会解决。我们此时已经完成了CameraPawn绕Z轴旋转的逻辑,这里再将CameraPawn绕Y轴旋转的逻辑补充完整:

【UE4 RTS】04-Camera Pan_第5张图片

【UE4 RTS】04-Camera Pan_第6张图片

 需要对CameraPawn的Y轴旋转范围做一个限制

【UE4 RTS】04-Camera Pan_第7张图片

这里我们不想让鼠标一直控制CameraPawn的旋转,因此我们可以通过Gate节点来控制,只有当我们按下鼠标中键触发“Pan”事件时,Gate节点的门才打开,此时才会控制CameraPawn的旋转。

【UE4 RTS】04-Camera Pan_第8张图片

【UE4 RTS】04-Camera Pan_第9张图片

显示鼠标光标:

【UE4 RTS】04-Camera Pan_第10张图片

这里我们不希望在控制CameraPawn旋转时,CameraPawn能够被移动,因此这里新增一个布尔类型的变量,命名为“DisabelCanMovement”,表示“不能移动是真还是假”

【UE4 RTS】04-Camera Pan_第11张图片

 然后当CameraPawn即将旋转前对该变量进行设置,旋转的时候设置不能移动,不旋转的时候设置为可以移动。

【UE4 RTS】04-Camera Pan_第12张图片

【UE4 RTS】04-Camera Pan_第13张图片

 然后在CameraPawn移动的逻辑中对该变量进行判断,只有“DisabelCanMovement”为假的时候才能够移动

【UE4 RTS】04-Camera Pan_第14张图片

 此时运行游戏可以发现CameraPawn的旋转和移动不能同时进行了。再添加如下节点,实现重置CameraPawn在Y轴方向上的旋转

【UE4 RTS】04-Camera Pan_第15张图片

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