UE5回合制游戏【2-摄像机控制】(蓝图版)

上一篇文章完成了一些基础的设置,这篇文章主要来设置一下摄像机。
摄像机的控制主要有鼠标滚轮控制缩放,WASD键控制前后左右移动,QE键控制左右旋转。

摄像机设置

首先打开BP_Pawn,然后添加Spring和Camera组件。

50bdf1e0fe7b6fba5f8a94b07d764502.jpeg


3848a61a50daad5a10e5cadee85be193.jpeg


层级关系如下图

04f0d62498da57a612ba30771558ea26.jpeg


我们把摄像机放到弹簧臂下面,这样摄像机就能跟着弹簧臂变换了。
弹簧臂是个很有用的东西,有了它我们设置摄像机就变得容易了很多。
想当年学Unity的时候,自己写代码去控制摄像机,说实话还是挺不容易的。
我们把摄像机旋转-60度,然后放到700位置处,取消碰撞测试。
碰撞测试的功能主要是用在当摄像机和弹簧臂根部之间有遮挡的时候,摄像机会沿着弹簧臂那根红线向前移动,直到没有被遮挡。

0b3b5470c85cc0867853684a87f711d9.jpeg


摄像机缩放
打开Project Settings

9167e337e464a104fd8c30562853679b.jpeg




在输入里面的绑定里面的轴映射里面添加一个映射,如下图设置。

2aed4219f85fdfbbb62f01c749cf7c82.jpeg


设置好了以后回到BP_Pawn,打开事件图表。

3dff678066ddbc33531843e0428f2cac.jpeg


这个时候输入右键搜索Zoom就有了相应的事件了,是不是很简单呢。

c9750e674d191d92b68cf30aafd43ddf.jpeg


首先添加个变量,表示缩放大小,然后在Tick事件里面平滑的移动,详细蓝图如下。

9efcb8ca70dfdc6c904391141722bf45.jpeg


添加个PlayerStart

e07796ba4cfd1ce5af1c92ecf04b88a8.jpeg


放到原点。

56b60b84213a304678d0e679c2de8df0.jpeg


运行以后会发现,貌似方向反了,咱们需要改一下。

928b18cf683630f2b678e57d4ec307a1.jpeg


好像还有一个问题?为什么鼠标滚轮没有动,它自己在动呢?
很简单,我们的变量ZoomDesired初始值为0,给它个初始值就可以了。

664a3f9deef058dd042e46b7f65be139.jpeg


初始化一般都是在beginPlay里面。

abff0f589dd13e969cb5cbdfbd10ec3a.jpeg


好了,咱们的摄像机缩放就做完了,里面的一些参数你们也可以根据具体情况进行调节。

摄像机移动

和前面一样,打开ProjectSetting
在输入里面添加两个映射。

e4a1144dfea23fceb23b89707b68c0ee.jpeg


添加一个向量类型的变量LocationDesired

376494a4a22a9117df46482b75e3bf54.jpeg


使用LocationDesired保存需要移动的位置

50daaa3493d0a4f691b9d88957d43760.jpeg


然后在Tick里面平滑的插值

1153bbc35f21e909388cd8f69e3384b0.jpeg


这个时候运行,WASD就可以控制前后左右移动啦。
当然还有个问题需要解决一下,那就是LocationDesired咱们也得给个初始值。

aebcc1b768a821ac1437e4bd89aa46bf.jpeg


好了,摄像机移动就搞完了。

摄像机旋转

这次和前面不太一样了,依然是打开ProjecSettings
这次使用Action Mappings而不是Axis Mappings。
这两者的区别就是前者是一次性的而后者是持续性的。

21f24baa679c1bee3fbab67f9df9bc8c.jpeg


添加一个Rotator类型变量RotationDesired

ef6b3c41ce4e3044981abd0be08b6a05.jpeg


RotationDesired用来保存需要旋转的大小

191f4dad6587b2d1be60a639dc1f838f.jpeg


然后在Tick里面进行平滑的旋转。

c3f1591a3713ae2a3b4742be11dc5e7e.jpeg


当然和前面一样需要有个小问题,需要给RotationDesired变量设置初始值。

dfeafaa9a2c760bcb80fc5592aee8f36.jpeg


这个时候运行就可以了。
当你旋转以后,再去移动就会发现不对劲,移动是跟着世界坐标设置的,而我们需要的是局部坐标。

0c66674259408f05533948e15df8f97b.jpeg


好了,到这里摄像机基本上就设置完了,大家可以根据自己的情况进行调节。

猜你喜欢

转载自blog.csdn.net/weixin_44350205/article/details/126761839