iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

用unity製作2DRPG雛形-沒有大野狼的小紅帽系列 第 10

10.unity攝影機跟隨功能(Cinemachine)

在設立完障礙物之後,就要讓小紅帽跑起來啦~ 遊戲視窗也要跟著走才行!!
1.jpg

此篇寫如何實現攝影機跟隨

想了解更多功能 (請參閱Cinemachine文件說明)

步驟小抄

一、導入**Windows → Package Manager → Unity Registry → Cinemachine → Install

二、新增** Cinemachine → Create Virtual Camera
(follow設定要跟隨的物件、Lens可調整大小、Body調整Damp)

三、處理邊界問題 Extensions → CinemachineConfiner → Bounding shape設定empty物件
(要創一個empty物件,掛載polygon collider2D,框地圖外圍)
邊界會把角色檔在外面,因此要設立一個新圖層
Edit → Project settings... → Physics 2D
把圖層跟其他圖層的交互作用都關掉

//圖層關法,假設我開了新圖層取名B
 A B C
AV   V
BV   V
CV   V

文字懶人包在此↑


詳細過程

一、導入Cinemachine

Windows → Package Manager → Unity Registry → Cinemachine → Install
2.png
3.png
4.png
完成導入會在上方看到Cinemachine
5.png

二、創建虛擬攝影機

Cinemachine → Create Virtual Camera

1.新增攝影機
6.png
創建好就可以在階層中看到CM vcam1
7.png
接著進入CM vcam1的Inspector

2.設定follow物件
在follow設定要跟隨的物件(可以直接從階層拉物件放進去,也可以用選的)
8.png
拉進來之後攝影機就會追隨角色囉!

動起來如果感覺飄移很嚴重,可以調整Damp
9.png

三、處理邊界

目前攝影機會跟隨角色,但是遇到邊界會超過,因此現在要來處理邊界問題!
10.png

Extensions → CinemachineConfiner

1.新增Extension
11.png

2建立空物件
要創一個empty物件,掛載polygon collider2D,框地圖外圍範圍
12.png
(※記得空物件在階層中不要掛載在CM vcam1之下,會變成框跟攝影機一起移動)

3.用polygon collider2D設定碰撞範圍
17.png

4.Bounding shape設定empty物件
把空物件拉進CinemachineConfiner的Bounding shape,讓攝影機知道要在哪個範圍內
15.png

5.建立圖層
空物件的碰撞範圍(地圖邊界)執行後會把角色檔在外面,因此要設立一個新圖層,並且把新圖層跟其他圖層的交互作用都關掉。
13.png
14.png

6.關閉交互作用
Edit → Project settings... → Physics 2D
16.png

這樣攝影機就被邊界關住囉!
18.png

最後再來思考一個問題,如何讓角色也被關著呢?

現在攝影機會自動跟隨,且攝影範圍被限制在地圖內,但角色沒有此限制,還是會跑出地圖。

解決方法有很多,明天我會使用Tilemap碰撞2D,替地圖增加山壁來實現XD。


攝影機這篇是我最想寫的一篇,雖然沒有程式碼,但是很常使用,每次使用的時候,都要查找資源。因此想要寫一個自己看的懂的懶人包XD。以後就會很方便了嘿嘿嘿。


上一篇
9.unity物件偵測(碰撞Collider2D)
下一篇
11.unity地圖障礙物(Tilemap Collider 2D)
系列文
用unity製作2DRPG雛形-沒有大野狼的小紅帽30

尚未有邦友留言

立即登入留言