close
GameObject 顧名思義,它就是在場景上的物件。
Prefab 顧名思義,它就是預先製作好的 GameObject,而你可以在你需要的時候,再把該物件動態載入到場景中,或者直接拖曳到場景中。
 
以下我們介紹如何建立 GameObject 與 Prefab,以及如何運用。
 
 
步驟一:
我們在場景上,建立了一個 Cube:

image01.jpg

 
而該 Cube 就是場景上的一個 GameObject。

image02.jpg

 
 
步驟二:
接著建立一個腳本來控制 Cube 往前移動:

image03.jpg

 
命名隨意,這邊我命名為 "Move"。

image04.jpg

 
 
步驟三:
打開剛剛建立的腳本,我們添加一段程式碼,讓物件持續往上飛:
 
using UnityEngine;

public class Move : MonoBehaviour
{
    private void Update()
    {
        Vector3 v3 = this.transform.position;
        v3.y += 0.05f;
        this.transform.position = v3;
    }
}
 
 
步驟四:
接著將腳本拖曳至 Cube 物件上:

image05.jpg

 
 
步驟五:
將場景上的 Cube 拖曳至 Assets 資料夾中,就可以建立 Cube 的 Prefab 了。

image06.jpg

 
或者選擇 Assets > Create > Prefab 直接建立一個空的 Prefab。

image07.jpg

 
再將場景中的 Cube 拖曳到該空的 Prefab 身上,也是可以的。

image08.jpg

 
 
步驟五:
點擊播放鈕開始測試吧!

image09.jpg

 
 
步驟六:
執行後,你會發現場景上的 Cube 會一直往上跑,這是因為我們有給他 "往上跑" 腳本的關係。

image10.jpg

 
 
步驟七:
現在把 Assets 中的 Cube 拉到場景上吧!

image11.jpg

 
拉完之後,你就會發現場景上多了一個一模一樣的 Cube,雖然名稱不太一樣,但是內部參數其實都是相同的。

image12.jpg

 

所以拉到場景上後,你會發現新增出來的 Cube 一樣會往上跑!
image10.jpg
 
 
現在大家都明白 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
 
 
arrow
arrow
    文章標籤
    C# Unity GameObject Prefab
    全站熱搜
    創作者介紹
    創作者 岳 的頭像

    岳 程式與鍵盤間的故事

    岳 發表在 痞客邦 留言(0) 人氣()