close
GameObject 顧名思義,它就是在場景上的物件。
Prefab 顧名思義,它就是預先製作好的 GameObject,而你可以在你需要的時候,再把該物件動態載入到場景中,或者直接拖曳到場景中。
以下我們介紹如何建立 GameObject 與 Prefab,以及如何運用。
步驟一:
我們在場景上,建立了一個 Cube:
而該 Cube 就是場景上的一個 GameObject。
步驟二:
接著建立一個腳本來控制 Cube 往前移動:
命名隨意,這邊我命名為 "Move"。
步驟三:
打開剛剛建立的腳本,我們添加一段程式碼,讓物件持續往上飛:
using UnityEngine; public class Move : MonoBehaviour { private void Update() { Vector3 v3 = this.transform.position; v3.y += 0.05f; this.transform.position = v3; } }
步驟四:
接著將腳本拖曳至 Cube 物件上:
步驟五:
將場景上的 Cube 拖曳至 Assets 資料夾中,就可以建立 Cube 的 Prefab 了。
或者選擇 Assets > Create > Prefab 直接建立一個空的 Prefab。
再將場景中的 Cube 拖曳到該空的 Prefab 身上,也是可以的。
步驟五:
點擊播放鈕開始測試吧!
步驟六:
執行後,你會發現場景上的 Cube 會一直往上跑,這是因為我們有給他 "往上跑" 腳本的關係。
步驟七:
現在把 Assets 中的 Cube 拉到場景上吧!
拉完之後,你就會發現場景上多了一個一模一樣的 Cube,雖然名稱不太一樣,但是內部參數其實都是相同的。
所以拉到場景上後,你會發現新增出來的 Cube 一樣會往上跑!
現在大家都明白 GameObject 與 Prefab 的區別了吧!
基本上,場景上的物件,都是 GameObject,而 Prefab 就是把場景上製作完成的 GameObject 拖曳到 Assets 裡保存起來的意思。
這是 Unity 中很基本的功能,在製作過程你一定會經常遇到重複性很高的 GameObject,這時候你就能將 GameObject 製作成 Prefab,並且複製出來使用。
或者在遊戲中,直接動態的載入這些 Prefab,關於動態載入的功能,可以到 "Unity 動態載入物件" 這邊去觀看。
若你想知道 GameObject 與 Prefab 之間的關聯性的話,也可參考這篇 "GameObject 與 Prefab 的關聯性" 文章喔!
PS:在 Unity 中,其實是把複製的動作稱作為 "克隆(Clone)"。
PS:本部落格的範例,大多數都是使用 Unity 5 以上版本所建立的專案。
範例下載:https://drive.google.com/file/d/0B0QPre3qvuw-TElrYmpFUG9SR2M/view?usp=sharing
文章標籤
全站熱搜
留言列表