上一篇文章完成了一些基礎(chǔ)的設(shè)置,這篇文章主要來設(shè)置一下攝像機(jī)。
攝像機(jī)的控制主要有鼠標(biāo)滾輪控制縮放,WASD鍵控制前后左右移動(dòng),QE鍵控制左右旋轉(zhuǎn)。
攝像機(jī)設(shè)置
首先打開BP_Pawn,然后添加Spring和Camera組件。


層級(jí)關(guān)系如下圖

我們把攝像機(jī)放到彈簧臂下面,這樣攝像機(jī)就能跟著彈簧臂變換了。
彈簧臂是個(gè)很有用的東西,有了它我們?cè)O(shè)置攝像機(jī)就變得容易了很多。
想當(dāng)年學(xué)Unity的時(shí)候,自己寫代碼去控制攝像機(jī),說實(shí)話還是挺不容易的。
我們把攝像機(jī)旋轉(zhuǎn)-60度,然后放到700位置處,取消碰撞測(cè)試。
碰撞測(cè)試的功能主要是用在當(dāng)攝像機(jī)和彈簧臂根部之間有遮擋的時(shí)候,攝像機(jī)會(huì)沿著彈簧臂那根紅線向前移動(dòng),直到?jīng)]有被遮擋。

攝像機(jī)縮放
打開Project Settings

在輸入里面的綁定里面的軸映射里面添加一個(gè)映射,如下圖設(shè)置。

設(shè)置好了以后回到BP_Pawn,打開事件圖表。

這個(gè)時(shí)候輸入右鍵搜索Zoom就有了相應(yīng)的事件了,是不是很簡單呢。

首先添加個(gè)變量,表示縮放大小,然后在Tick事件里面平滑的移動(dòng),詳細(xì)藍(lán)圖如下。

添加個(gè)PlayerStart

放到原點(diǎn)。

運(yùn)行以后會(huì)發(fā)現(xiàn),貌似方向反了,咱們需要改一下。

好像還有一個(gè)問題?為什么鼠標(biāo)滾輪沒有動(dòng),它自己在動(dòng)呢?
很簡單,我們的變量ZoomDesired初始值為0,給它個(gè)初始值就可以了。

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

好了,咱們的攝像機(jī)縮放就做完了,里面的一些參數(shù)你們也可以根據(jù)具體情況進(jìn)行調(diào)節(jié)。
攝像機(jī)移動(dòng)
和前面一樣,打開ProjectSetting
在輸入里面添加兩個(gè)映射。

添加一個(gè)向量類型的變量LocationDesired

使用LocationDesired保存需要移動(dòng)的位置

然后在Tick里面平滑的插值

這個(gè)時(shí)候運(yùn)行,WASD就可以控制前后左右移動(dòng)啦。
當(dāng)然還有個(gè)問題需要解決一下,那就是LocationDesired咱們也得給個(gè)初始值。

好了,攝像機(jī)移動(dòng)就搞完了。
攝像機(jī)旋轉(zhuǎn)
這次和前面不太一樣了,依然是打開ProjecSettings
這次使用Action Mappings而不是Axis Mappings。
這兩者的區(qū)別就是前者是一次性的而后者是持續(xù)性的。

添加一個(gè)Rotator類型變量RotationDesired

RotationDesired用來保存需要旋轉(zhuǎn)的大小

然后在Tick里面進(jìn)行平滑的旋轉(zhuǎn)。

當(dāng)然和前面一樣需要有個(gè)小問題,需要給RotationDesired變量設(shè)置初始值。

這個(gè)時(shí)候運(yùn)行就可以了。
當(dāng)你旋轉(zhuǎn)以后,再去移動(dòng)就會(huì)發(fā)現(xiàn)不對(duì)勁,移動(dòng)是跟著世界坐標(biāo)設(shè)置的,而我們需要的是局部坐標(biāo)。
文章來源:http://www.zghlxwxcb.cn/news/detail-435441.html

好了,到這里攝像機(jī)基本上就設(shè)置完了,大家可以根據(jù)自己的情況進(jìn)行調(diào)節(jié)。文章來源地址http://www.zghlxwxcb.cn/news/detail-435441.html
到了這里,關(guān)于UE5回合制游戲【2-攝像機(jī)控制】(藍(lán)圖版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!