1. 程式人生 > >[Unity3D] 2D畫素遊戲(二) 準備影象素材並認識預製件Prefab

[Unity3D] 2D畫素遊戲(二) 準備影象素材並認識預製件Prefab

回顧

上一篇:(一) Hello Unity!
在初步認識了Unity之後,我們成功建立了第一個2D畫素精靈——我們的主角Player,並且匯入添加了一個LittleBuddy作為主角的載體。

構思

當我們打算繼續的時候,會陷入一種茫然:之後要做什麼?這時候就需要預先對遊戲玩法,遊戲設定等等做個簡單的構思。如我這款簡單的遊戲為例:
設定:我們的主角小巴迪是個火柴人,有一天不小心誤入地牢,入口被封住,怪物在低吼,小巴迪堅定決心要在地牢中逃出生天,重見光明。
視角:俯視正交視角。俗稱“從上往下看”,Player在一個水平面上移動,這樣的視角就無需考慮重力。並且主角可以在平面上流暢移動,而非那種類似戰旗的方格移動。
玩法

:鍵盤和滑鼠控制Player移動和攻擊,消滅怪物,到達出口。

素材準備

既然說到是個地牢了,那麼總歸要有點地牢的樣子,因此首先來佈置一下游戲背景。預設的藍底實在太毀氣氛了!

尋找地板和障礙素材

老規矩,我們至少得先去找好素材,找找地板和障礙(牆)的畫素圖吧!當然我們需要的是那種正方形的畫素圖,這便於我們擺放和設計。另外保證圖片的尺寸足夠大,除非是向量圖,否則點陣圖放大後會出現嚴重的模糊和變色。

統一圖片素材尺寸

假定最後我們每個關卡是15x15unit(unit是Unity的一個標準單位,比如Transform欄的座標都以unit為單位),每個精靈的圖片素材大小為1x1unit。
一般可以通過如下方式來放縮圖片使其符合我們的規定:

  • 專案裡找到圖片檔案,單擊以顯示它的屬性
  • 場景裡找到Pixels Per Unit屬性,例如我的圖片是320x320畫素,那麼我就將值設為320。

合適搭配素材

入門遊戲請不起美工沒關係,但不能到太辣眼睛的地步。考慮到地牢會採用較暗的地板,LittleBuddy的黑色四肢就很容易看不清,於是可以新增一圈白色的描邊。最終我的三張素材(32x32樣圖,實際320x320)如下:
牆面(spr_Wall):這裡寫圖片描述
地板(spr_Floor):這裡寫圖片描述
主角(spr_LittleBuddy):這裡寫圖片描述

匯入Unity預覽效果

  • 將三張圖片像上一篇一樣匯入到Sprites資料夾中。
  • 按照上面的英文名重新命名檔案。
  • 設定Pixels Per Unit屬性。

此時,專案裡的檔案檢視大概就是這樣的:
這裡寫圖片描述

要預覽效果的話,首先要新建精靈:FloorWall。同樣,別忘記新建精靈的標準化操作,然後給相應的精靈換上素材。如果一切無誤,此時的三個精靈在場景都只佔一個方格的位置。可以適當在Transform調整座標防止重疊:
這裡寫圖片描述

像我還是比較好奇實際效果的話,可以複製貼上好幾個地板或牆面,然後一個個設定座標“拼湊”出一個簡單的畫面:
這裡寫圖片描述

這裡有個小細節,當精靈重疊在一起的時候,你可以調整精靈的Z座標來使Z座標小的精靈處在頂層。例如,我在這裡將Player的Z座標設為-1

製作預製件(Prefab)

預覽完畢後,馬上就會意識到一個嚴重的問題。這還只是一個兩個,整個關卡最後可能會有幾十個的精靈,但其實他們的本質都是一樣的,地板就是地板,牆面就是一堵牆。因此Unity提供了預製件的功能,讓開發者可以把某種遊戲物件做成預製件。預製件可以產生克隆(類似複製貼上),但你可以通過更改預製件的屬性來更改所有克隆體的屬性,並且.prefab格式的預製件檔案可以到任意地方去使用,增大了開發複用性。
同理,為了管理專案,我們在根資料夾目錄新建一個名為Prefabs的新資料夾儲存所有的預製件,然後將預覽時建立的多餘複製體先刪除。最後把Player,Wall,Floor一個個拖進Prefabs中。
這裡寫圖片描述

現在可以試驗一下,更改Wall.prefabSprite屬性,看看遊戲中的Wall會不會發生變化。
這裡寫圖片描述

那麼這三個重要的預製件就順利完成了,之後會再進一步利用。

拓展閱讀