[轉]Prefabs(預設)與 Instantiate(實例化)


解釋:Prefabs(預設)是一種資源類型,可被重復使用的游戲對象。它可以被置入多個場景中,又或者能夠在一個場景中被多次置入。當你在一個場景中增加一個Prefabs,你就實例化了一個Prefabs。所有Prefabs實例都是Prefab的克隆,只要Prefabs原型發生改變,所有的Prefabs實例都會產生變化。

Prefabs的用法:如果大家要創建一些想要重復使用的東西,那么就該用到它了。

接下來我們寫個小例子,看看如何使用它

1 搭建如下場景:一個地板,一個下落的立方體,調整攝像機的角度和位置,加個平行光,位置參考下圖的Scene窗口,效果如Game窗口展示的那樣。同時給立方體加上剛體屬性(Component -> Physics -> Rigidbody)

然后調整一下立方體的角度,運行一下,讓它滾一下。

2  創建Prefabs

在Preject窗口,點Create-> Prefab。然后我們從Hierarchy窗口中將立方體拖到Project窗口新創建的Prefab上。當Hierarchy中的立方體變成了藍色,Prefabs就完成了填充。

然后你從Preject窗口中將創建的Prefabs拖入Scene窗口中,運行一下。就完成了一次克隆。它們就像雙胞胎一樣。

3  接着我們配合Instantiate,來用代碼創建多個Prefabs的實例。

Instantiate:克隆原始物體。設置位置,角度。如果一個對象,組件,腳本實例被傳入。將克隆整個對相愛難過的層次,以及所有子對象。

各位同學,讓我們在Project窗口點Create -> Javascript創建一個腳本

我發現可以用as3的寫法來寫這里面的js,各位同學請看

public var Pre:GameObject;//在編輯器中用來綁定的Prefabs

private function Update ():void

{

        var instance:GameObject=Instantiate(Pre,transform.position,transform.rotation);

        //Instantiate用法,注意參數

        //Pre  用來克隆的Prefabs

        //transform.position  腳本綁定對象的位置 就像this.transform….

        //transform.rotation  腳本綁定對象的角度 就像this.transform….

}

是不是有很親切的感覺?

4 寫完腳本,我們要把它綁定到一個對象上。這時候,我們可以刪除Hierarchy窗口中的立方體,然后創建一個空的游戲對象(GameObject->Create Empty),放置到原來立方體的位置上。將腳本拖放到Hierarchy窗口中的新鍵的空對象上,讓它來執行代碼。

5 在Hierarchy窗口中單擊空對象,在它的Inspector窗口中就能看到綁定的腳本。然后我們把早前創建的Prefabs拖到腳本Pre右邊的框上,完成了腳本中變量的綁定。

6 按小三角運行一下,搞的像粒子效果一樣,是不是很嗨?

 

出自blog: http://blog.sina.com.cn/s/blog_82b6aa3d0100w8sx.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM