Prefabs (預製物) 的使用

在很多遊戲中需要大量的物件產生,如橫向捲軸射擊遊戲的敵人,子彈等等,在此篇(推幣機範例)中,我需要的就是 "金幣" 物件的產生,在使用 Prefab 前你可以先參考官網介紹, OK~ 現在就來介紹如何使用 Prefab 吧

Prefab 簡單的說就是預先製作物件的本體,當需要產生大量相同的物件時,只要在程式碼中撰寫產生的方法,就能達到目的,首先來製作 Prefab 容器吧,步驟為

Project 視窗點選右鍵 -> Create -> Prefab

完成後會出現 1 個白色的方塊,這就是 Prefab 容器,為何稱為容器呢? 事實上目前的 Prefab 是空的物件,無法使用,我們必須建立物件再把物件附屬給 Prefab 容器,直接建立 1 個 Cube (或是你需要產生的物件)並拖曳到 Project 視窗的 Prefab 容器上,這個動作就是附屬的步驟,完成後你可以看到原本白色的 Prefab 容器已經變成藍色,接著只要在腳本中加入產生的方法,如下

   1:  var test_prefab : GameObject ;
   2:   
   3:  function Update () 
   4:  {
   5:      if(Input.GetMouseButtonDown(0))
   6:      {
   7:          Instantiate(test_prefab,test_prefab.transform.position,test_prefab.transform.rotation);
   8:      }
   9:      
  10:  }

第 1 行 var test_prefab 就是我們想要複製的物件( Prefab 容器)
第 5 行按下滑鼠左鍵按鍵
第 7 行Instantiate(test_prefab,test_prefab.transform.position
,test_prefab.transform.rotation); 使用動態產生的方法產生物件,第 1 個參數為 test_prefab 容器,第 2 個參數為產生物件的座標 第 3 個參數為產生物件的旋轉角度,腳本內容輸入完成後附與給 Camera (或是控制流程物件),接著點選 Camera (或是控制流程物件),在 Inspector 視窗的腳本中有 1 個 test_prefab 欄位,把剛剛建立的藍色 Prefab 容器拖曳到 test_prefab 欄位中,完成後執行看看,能成功產生從 Prefab 複製的物件,這裡介紹的只是 Prefab 的基本用法,更多的進階功能請參考官網~~




標籤: