首先要說明一下什么是預制體?
在Unity3D里面我們叫它Prefab;我們也可以這樣理解:當制作好了游戲組件(場景中的任意一個gameobject
),我們希望將它制作成一個組件模版,用于批量的套用工作,例如說場景中本質上要重復使用的東西,比如:敵人、士兵、子彈或者一個磚塊完全相同的墻體。這里說本質是因為默認生成的prefab其實和模版是一模一樣的。就像是克隆體,但生成的位置、角度或者一些屬性不同(這個就好像c++里邊的類一樣);
這樣看來,Prefab對于我們開發unity3d相當重要。
好了,下邊開始介紹如何制作Prefab。
首先創建一個Prefabs文件夾吧。可以將自己制作的Prefab全部放到這個文件夾,這樣容易管理。
接著我們在場景中創建一個備選預制件組件,這里就直接創建一個CUBE好了。
這里有2中方法將這個CUBE變為預制體。
1.直接將cube拖拽到Prefabs文件夾里。(真是超級簡單)
2.現在Prefabs文件夾里邊創建一個預制體。如下圖為創建的方法
接著將CUBE拖拽到預制體上。如下圖所示:
現在看看場景中的CUBE,可以看到在Inspector面板中看到多了這樣一欄,點擊select可以
定位到project中預制體的模版“母體”,點擊Revert就是還原當前預制體,Apply就是確定當前
預制體了。有興趣的可以自己試試看看它們的作用。
OK,我們已經創建好了預制體,那么如何使用呢?下面簡單介紹一下。
首先創建一個腳本:
寫一個公用變量來記錄預制體。
//----------------------
//Prefab by cube for spawn
//--------------------------------------
public GameObject ?_Pre_Cube;
接著在點擊鼠標時創建,我這里創建的位置和旋轉都是0
void Update()
{
if(Inpute.GetMouseButtonDown(0))
{
Instantiate(_Pre_Cube,Vector3.zero,Quaternion.identity);
}
}
然后布置一下腳本和變量:
運行點擊屏幕
可以注意到創建了很多的克隆體。