1. 程式人生 > >Unity中prefabs的學習心得以及應用理解

Unity中prefabs的學習心得以及應用理解

最近這段時間一直在自學Unity,作為一個零開發經驗的小白來說,除了對遊戲的熱愛之外,基本上沒有什麼能拿得出手的東西了。因為時間有限,零零散散地起了個步,每天都感覺能有所收穫就很知足。那麼為了防止自己健忘,就順手寫了個心得體會,對不對的大家多指正批評。

話不多說,先記錄一下prefabs的用法。

Prefabs,也就是預設體,是一個遊戲物件及其元件的集合,使用prefabs是為了讓遊戲物件以及資源能夠被重複使用。在Unity的Hierarchy檢視中呈藍色的物件就是Prefabs了。要建立這樣的Prefabs很簡單,只需要在project檢視下建立一個資料夾,然後在資料夾中建立prefabs就可以了。也可以先建立小的遊戲物件,然後再拖拽到project資料夾中。

建立好的Prefabs,可以在當前工程中進行復用,也可以匯出資源到其他的工程裡面使用。十分方便。

根據這個特點,我對這一功能在開發遊戲時的具體應用有如下的理解:

  1. 搭建場景需要。通過不斷地研究,我終於理解了很多遊戲場景看上去精美絕倫,然而在製作它們的時候卻不是一氣呵成的。它們往往是很多個小的物品拼湊成一個大的組合,然後幾個組合再拼湊成一個場景,因此在這個過程中,那些最小單位的物品就一次次地被重複使用。而prefabs就是讓我們不斷地去重複使用這些物件的。如果我們把搭建場景想象成蓋房子,那麼prefabs無疑就是搭建房子主體的磚塊,這一塊塊的磚當然都是複用的了。
  2. 方便重複利用。以割草的《三國無雙》系列為例,假設用unity開發這款遊戲的話,如果我們給每一個出現的“草”(就是小兵》都單獨設定一個模型,恐怕這個遊戲一個關卡就要爆炸。在這個關卡里面泡著成千個名字不同的模型,先不提優化組的工作量,單說關卡設計師把一個模型複製上千遍就有多鬧心。更要命的是,一旦這些小兵被玩家砍完了呢?而這個時候,prefabs就派上用場了。我們可以寫一個指令碼,讓prefabs被重複利用,根據判斷自動生成新的小兵(反正都長得差不多),保證玩家可以砍到過癮,同時也降低了開發組的工作量。
  3. 節省資源。小的時候玩過一款很虐心的遊戲叫做《銀色幻想》,這款遊戲的品質還是不低的,虐心就虐心在讀條上。切換場景就要loading很長時間真的是煩躁,運氣不好就直接卡死(win98時代的電腦,後來用win7固態重溫經典就再沒出現過這樣的情況)。現在回想一下,這款遊戲裡面似乎沒有什麼複用的資源(除了敵人),因此進行loading的時候會把載入場景中所有的資源都讀取一遍。如果我們把同類型的場景中,主體使用prefabs的方法來進行搭建的話,那麼我們可以少讀取很多很多資源,這樣就不至於讓玩家在等待中發狂。

暫時就想到這麼多,歡迎大家補充。另強力推薦一波適合新手自學unity的線上平臺paws3d,連結https://www.paws3d.com/learn/,並尋求喜歡遊戲開發的小夥伴加群935714213