網頁

2020年11月19日 星期四

[Unity] Prefab的製作、使用、解除連結、回復聯結

前言

Prefab (預置物)的使用,相當便利。
在遊戲裡面,想要瘋狂發射子彈,那麼我們就可以先把「子彈」做成預置物。
在事件驅動後,舞台上便生成子彈(Instantiate),想要生成幾個子彈都可以。
如果子彈太多,也可以用Destroy指令,把子彈從舞台上消除。

一、製作

在舞台上製作遊戲物件,
可以在上面附著 add component (譬如:Rigitbody、Collider等)
也可以在上面add script。

總的來說,在舞台上把某個遊戲物件製作好後,
只需要將整個遊戲物件從舞台拖曳到Asset裡面,就會自動生成prefab了。


上面這種在Asset裡面,顯示藍色cube圖示的遊戲物件,代表預置物。


在Hierarchy裡面,這種以藍色標記著的Cube(1),
代表在舞台上的這個遊戲物件與他所屬的預置物之間具有連結關係。
如果把Asset裡面的這個預置物刪除,那麼在舞台上實體化的這個遊戲物件,
就會失去連結,甚至消失無法使用。


二、使用

public GameObject myPrefab // 從外部接受myPrefab  
                                                   // GameObject的G大寫,用來宣告遊戲物件


Instantiate( myPrefab );            //把要生成在舞台的prefab,寫在這裡

Destroy (gameObject);


            //把目前這個script所屬的gameObject消除
                                                  // gameObject的g小寫,用來指稱目前所屬遊戲物件

三、解除連結

1. 點選要解除連結的遊戲物件
2. 點擊GameObject → Apply Changes To Prefab
3. 看到它從藍色變成黑色

        

4. 在Inspector,仍然保存Prefab的按鈕(Select、Revert、Apply)




四、回復聯結

1. 點擊Inspector裡面的,Revert 或者是 Apply
2. 如果點擊Revert,就是回復先前設定
    如果點擊Apply,就是apply目前作的所有修改,並且回復成為prefab
    這兩者意義有點不同,使用上要稍微注意。



沒有留言:

張貼留言