MMD聯(lián)動Unity學(xué)習(xí)筆記 Vol.32 Cinemachine2D

前言
????這期我們接著上期內(nèi)容,官方的Cinemachine教程的第7節(jié),再啃生肉,如果有翻譯不對的地方,希望各們小伙伴可以指正。

Cinemachine2D
????這期視頻我們共同學(xué)習(xí)如何在2D項目中使用Cinemachine。我們準(zhǔn)備研究使用Cinemachine來設(shè)置如何正交相機表現(xiàn),來讓Cinemachine適應(yīng)我們2D項目的創(chuàng)作。我們也準(zhǔn)備研究如何使用方便組件,來限制我們的相機在一個內(nèi)部環(huán)境中的移動。

????在這個場景中,我們有一個可以自由移動角色的2D環(huán)境。

????當(dāng)前我們只有一個附加在我們角色avatar的標(biāo)準(zhǔn)的相機,因為相機只是綁在游戲物件上,每當(dāng)我們的角色移動時它就會移動。

????這個是沒問題的,但是我想要可以定制化那么會感覺好一點。

?

???我們使用Cinemachine創(chuàng)建一個虛擬相機,并追蹤我們的Sprite。

????我們選擇主菜單Cinemachine選項里的“Create 2D Camera”創(chuàng)建一個新的相機,然后我們將我們的玩家角色拖給我們剛創(chuàng)建的虛擬相機的Follow屬性。????

????現(xiàn)在我們可以如同在3D中一樣設(shè)置我們的鏡頭,我們可以使用檢視器或者游戲窗口的指引設(shè)置鏡頭的邊框,來創(chuàng)建我們相機的行為。

????我想要我們相機在角色在屏幕橫跑一小段距離,才開始移動。所以我準(zhǔn)備設(shè)置我的Dead Zone寬度為大約0.25,這樣它可以在沒有相機移動的前提下,向后和向前跑一段距離。

????我們也可以重新安排鏡頭,可以讓我們角色在屏幕的左邊。我想要在角色跳躍時相機跟著移動,但我希望有一點延遲。

????我們把Dead Zone的高度設(shè)置為0,所以相機可以在角色跳躍時準(zhǔn)確地移動,然后我們設(shè)置Soft Zone的高度為0.8,這樣當(dāng)重力拉動我們的角色落回地上時有足夠的延遲,這已經(jīng)比我們開始時好很多了。

????現(xiàn)在主要的問題是,如果我們跑得太遠(yuǎn)的話,我們的相機會暴露出場景的邊緣,最適合的做法是我們的相機在它到達(dá)我們環(huán)境的邊緣之前,就應(yīng)該停止移動。

????我們要告訴Cinemachine實現(xiàn)這個功能,需要用到一個附加的Cinemachine限制組件到一個虛擬相機。

????這個限制組件使用一個邊界碰撞器來約束我們相機的移動

????如果我們在我們的背景里創(chuàng)建一個碰撞器,


????然后將它賦給我們相機的Bounding Shape屬性,現(xiàn)在Cinemachine就會在場景中移動通過碰撞器時進(jìn)行自我約束。