預製物件(Prefab)
Prefab
Unity 中的預製物件(Prefab
),讓你可以儲存一個遊戲物件(GameObject
),這個預製物件(Prefab
)會包含該遊戲物件的所有組件(Component
),屬性值(property values
),以及它的子遊戲物件,並且可以建立,更改它的設定,就像是一個可重用的資源(Asset
)。預製物件資源(Prefab Asset
)就像是一個模板(template
),讓你在場景中(Scene
)添加預製物件實體(Prefab instance
)
- 任何在
Prefab Asset
的更改,都會自動反應(reflected
)到該預製物件的實體上。 - 預製物件中也可以含有預製物件,這稱為
Nest Prefabs
- Unity 2018.3b 以後的版本支援
Nest Prefabs
- Unity 2018.3b 以後的版本支援
- 預製物件的實體值可以被覆蓋(
override
),讓每個預製物件的實體可以有不同的行為 - 如果在執行期間(
runtime
)才加入的遊戲物件,那麼這個遊戲物件可以把它變為預製物件,例如子彈,NPC等只會在遊戲期間出現的物件
當你想要在你的遊戲專案中重用遊戲物件(GameObject
),例如非玩家角色(non-player character (NPC)
),或是一些道具,應該把這個遊戲物件變為預製物件(Prefab
),因為Unity的Prefab System
會自動幫你同步遊戲物件的資料,讓這些有相同預製物件的實體有同樣的資料。以下常見使用預製物件的例子
- 環境資源(
Environmental Assets
):例如在關卡中心顯示多次的樹。 - 非玩家角色(NPCs):例如某種機器人,出現在關卡中多次,他們以透過覆蓋(
override
)在移動速度,發出聲音上有所不同。 - 拋射物(
Projectiles
):如子彈,箭等,像是海盜船的砲台開火時,要產生一個砲彈實體 - 主要玩家角色:玩家在每個不同的場景中都會出現在一個開始點上,因此很適將它變為預製物件
建立 Prefab Asset
在 Unity 中建立預製物件資源(Prefab Asset
)的方式非常簡單,在Unity編輯器中,將在 Hierarchy window
中的物件使用滑鼠左鍵拖曳到下方的 Project window
即可。操作完成的同時會發現原先的遊戲物件變為淡藍色的,表示它變為預製物件(Prefab instance
)了
Reference: