現在來做點別的東西。Nintendo Switch上剛推出的《超級馬里奧》中,有一些關卡混合了2D和3D的畫面,這種效果十分讓人印象深刻。如何在Unity中實現這個效果呢?

正常情況下,攝像機會直接渲染到你的屏幕。我們如何能讓攝像機看到內容並顯示在另一個對象上呢?你可能注意到攝像機有一個屬性,叫目標紋理(Target Texture)。

我們要在Asset文件夾里新建一個渲染紋理(Render Texture),添加到攝像機上。你可以在項目窗口依次點擊Create -> Render Texture來新建渲染紋理。創建好后,你可以將它拖到攝像機上的Target Texture屬性中。攝像機這時會將所有對象都渲染到這個紋理上。如果現在進入運行模式,游戲畫面將呈現為一片漆黑,因為目前沒有激活的攝像機渲染到屏幕上。
現在,我們要加入一個新攝像機到場景中,攝像機的Projection屬性為Perspective。在攝像機前添加一個新的3D對象,本例中,我們添加的是圓柱體。然后創建新材質,其Shader屬性設為Unlit/Texture,再將剛剛創建的渲染紋理拖到這個材質上的Main Texture部分。
得到的效果如下圖。

這樣一來,我們就實現了類似《超級馬里奧》中的2D和3D混合效果,是不是很簡單!
資源下載
項目《超級馬里奧》下載地址:
