前言
本篇实现了CameraPawn的旋转功能。
效果
步骤
1. 打开项目设置,添加两个操作映射
2. 打开玩家控制器“RTS_PlayerController_BP”,新建一个浮点型变量,命名为“PanSpeed”
在事件图表中添加如下节点
此时运行游戏可以发现当鼠标移动时,CameraPawn会围绕Z轴进行相应的旋转,但是按下W键时前进方向并不是旋转后的正方向:
上面的问题在下一篇文章中会解决。我们此时已经完成了CameraPawn绕Z轴旋转的逻辑,这里再将CameraPawn绕Y轴旋转的逻辑补充完整:
需要对CameraPawn的Y轴旋转范围做一个限制
这里我们不想让鼠标一直控制CameraPawn的旋转,因此我们可以通过Gate节点来控制,只有当我们按下鼠标中键触发“Pan”事件时,Gate节点的门才打开,此时才会控制CameraPawn的旋转。
显示鼠标光标:
这里我们不希望在控制CameraPawn旋转时,CameraPawn能够被移动,因此这里新增一个布尔类型的变量,命名为“DisabelCanMovement”,表示“不能移动是真还是假”
然后当CameraPawn即将旋转前对该变量进行设置,旋转的时候设置不能移动,不旋转的时候设置为可以移动。
然后在CameraPawn移动的逻辑中对该变量进行判断,只有“DisabelCanMovement”为假的时候才能够移动
此时运行游戏可以发现CameraPawn的旋转和移动不能同时进行了。再添加如下节点,实现重置CameraPawn在Y轴方向上的旋转