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

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

Prefabs的用法:若是你們要建立一些想要重複使用的東西,那麼就該用到它了。編輯器

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

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

而後調整一下立方體的角度,運行一下,讓它滾一下。3d

2  建立Prefabsorm

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

而後你從Preject窗口中將建立的Prefabs拖入Scene窗口中,運行一下。就完成了一次克隆。它們就像雙胞胎同樣。
對象

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

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

相關文章
相關標籤/搜索