Unity自制鎖定敵人鏡頭與自由鏡頭絲滑切換

在Unity中開發(fā)戰(zhàn)斗系統(tǒng)的時候,會需要鏡頭從第三人稱自由鏡頭切換到鎖定怪物鏡頭的情況,從而使得玩家方便進(jìn)行戰(zhàn)斗與自由移動。
嘗試了用Cinemachine虛擬相機(jī)的LookAt來進(jìn)行鎖定的效果始終不符合預(yù)期(也可能是我沒有調(diào)到合適的參數(shù)),于是就試著參考網(wǎng)上的教程來自己制作鏡頭和鏡頭切換了,這里就大概記錄一下吧,順便給自己整理下思路:
創(chuàng)建空對象CameraHolder,將他的位置放在角色的后腦勺,并創(chuàng)建子對象Pivot(意思是中心點,轉(zhuǎn)動中樞),將主相機(jī)放在Pivot內(nèi),調(diào)整相機(jī)的位置使得相機(jī)能照到角色全身。

創(chuàng)建Camera Manager腳本,并掛載到Camera Holder處,以下是定義的一些參數(shù)。

聲明的參數(shù)和初始化如下:
編寫腳本函數(shù),主要的函數(shù)有三個:
根據(jù)鼠標(biāo)移動讓鏡頭延遲跟隨的函數(shù),這部分根據(jù)玩家角色位置做個Lerp跟隨就可以了:
鏡頭轉(zhuǎn)角函數(shù)(是實現(xiàn)切換鏡頭的核心函數(shù),我以自己的理解寫了一些注解,僅供參考):
通過外部按鍵切換鎖定狀態(tài)函數(shù):
函數(shù)調(diào)用
Tick與HandleRotation可在你的角色控制器中調(diào)用,以官方的ThirdPersonController.cs為例,可以加在原來的CameraRotation函數(shù)中,將其結(jié)構(gòu)改為:
切換鎖定狀態(tài)函數(shù)SwitchLockOnState在任意Update函數(shù)調(diào)用即可,這里統(tǒng)一結(jié)構(gòu)依舊在ThirdPersonController.cs調(diào)用:
大功告成,將對應(yīng)的物件置入腳本中,就可以使用你定義的鎖定鍵來實現(xiàn)敵人的鎖定和解鎖啦!

第一次寫Unity的學(xué)習(xí)筆記,希望這個筆記能幫到正在學(xué)習(xí)Unity的你~
參考教程:
1、https://www.youtube.com/watch?v=ud3_tderJOQ
2、https://www.bilibili.com/video/BV1gW411T7yb/?spm_id_from=444.41.top_right_bar_window_custom_collection.content.click&vd_source=e901f99fe3148e0c73c7ea3e6107027f

CSDN文章鏈接:https://blog.csdn.net/Origamihui/article/details/132237699