歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android+Unity3D的Prefabs(預設)與Instantiate(實例化)

Android+Unity3D的Prefabs(預設)與Instantiate(實例化)

日期:2017/3/1 11:07:15   编辑:Linux編程
解釋: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,各位同學請看
  1. public var Pre:GameObject;//在編輯器中用來綁定的Prefabs

  2. private function Update ():void
  3. {
  4. var instance:GameObject=Instantiate(Pre,transform.position,transform.rotation);
  5. //Instantiate用法,注意參數
  6. //Pre 用來克隆的Prefabs
  7. //transform.position 腳本綁定對象的位置 就像this.transform….
  8. //transform.rotation 腳本綁定對象的角度 就像this.transform….
  9. }

是不是有很親切的感覺?

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

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

Copyright © Linux教程網 All Rights Reserved