Unity Prefab

最近看了一下 Unity 在 2020 LTS 版本針對 Prefab 的優化項目,相信許多有在使用 Unity 的夥伴們都早已知道 Prefab 如何運用,不過在我經歷了組內大大們的調教之後,我還是來把一些原本不是那們清楚的觀念分享出來。

簡介

Prefab Variant

Prefab Variant (變體),是 Unity 2018.3 版本之後新增的功能。
在介紹變體之前,我們先來釐清 Prefab 到底是以什麼樣的面目存在於遊戲場景中。

Scene 裡面這些藍色字體顯示的物件,也就是 Prefab 資源 clone 出來的物件,它代表的其實只是目前這個 Scene 裡面存在這麼一個 Prefab 資源。
在你對 Scene 中的 Prefab 的某個屬性進行 modify 之後,你可以發現該屬性會有特殊的標記(粗體字),這些 modify 儲存在 Scene 當中

簡單來說,Scene 裡面儲存的關於 Prefab 的內容其實是,我這個 Scene 用了哪個 Prefab ,然後這個 Prefab 更改了哪些屬性,而其餘沒有更動的屬性是不儲存的

有了這樣的觀念,相信大家對於 Prefab 資源的更新,能夠連動更新場景中的 Prefab 物件,其背後原理是如何運作的就比較能想像了吧。

大家可以一起做個小實驗,我們對 Scene 中某個 Prefab 的 scale Y 軸 進行縮放,可以看到該欄位有 modify 的標記。接著我們去對該 Prefab 資源本身的 scale Y 軸進行更改,就會發現無論我們怎麼改,Scene 中對應的 Prefab 就是不會連動更新 scale Y 軸,原因就是 Scene 已經儲存了我們一開始所做的 modify 資訊。

2020 LTS 優化項目

  • Prefab Stage
    *
  • Prefab Variant
    *
  • OnPostProcessPrefab
    *