抱歉各位,拖更了很久,主要是因為生病了,動了個手術(shù)?,F(xiàn)在好多了,回到定期更新的節(jié)奏了。
在Unity3D引擎中,引擎為我們提供了多種便于搭建場景的功能。利用好prefab預(yù)設(shè),將會使我們更快速的搭建游戲場景。另外,在搭建場景之前,規(guī)劃好我們的游戲場景也是一個必要的步驟。那么今天,我們就以上次建好的模型為例,快速搭建一個Unity的場景。
使用合理的目錄結(jié)構(gòu)
首先在你的Unity目錄里面要保持良好的目錄結(jié)構(gòu),如使用如下的目錄結(jié)構(gòu)。

在上面的目錄結(jié)構(gòu)中,Material是模型的材質(zhì),Mesh是從3D建模軟件中導(dǎo)入的模型,這些模型稱為Mesh(網(wǎng)格)。因為其沒有碰撞體和Untiy中的PBR材質(zhì),所以我們需要對其進行碰撞體的添加和貼上材質(zhì)。添加完材質(zhì)之后,我們將這些做好的物體拖動到Prefabs中,保存為預(yù)設(shè),以便下次使用。在Scene中主要保存的是游戲中的場景文件。而Texture中則是材質(zhì)的貼圖,如PNG,JPG等貼圖文件,這些圖片是構(gòu)成PBR材質(zhì)的主要部分。
增加碰撞體的策略
在Unity引擎中,我們可以使用自帶的Box Collider碰撞體,Sphere Collider碰撞體等來模擬簡單的物體的碰撞。但遇到一些特殊的物體的時候,則需要使用碰撞體來組合,用來模擬其表面。在一些復(fù)雜的物體中,使用Mesh Collider碰撞體往往會偏離我們的預(yù)想。如下,一個樓梯的模型,如果我們使用Mesh Collider并通過Convex來生成碰撞體的時候,會造成如下的結(jié)果。

注意這個生成的碰撞體,其應(yīng)該可以行走的表面被完全封死,變?yōu)椴豢尚凶?。這時我們就不能只顧方便而使用Mesh Collider了。
對于樓梯的碰撞體的解決方法,我們使用Box Collider來模擬樓梯。

在這里,我僅僅使用了3個Box Collider,為了省事。其實可以每一級臺階增加一個Box Collider來完美地模擬樓梯的碰撞體的。
在添加碰撞體的時候,我使用的并不是在右面Inspector檢視面板來添加,而是在樓梯這個物體里面添加Cube這個子物體,并調(diào)整到合適位置和大小之后,關(guān)掉其Mesh Renderer來實現(xiàn)的。這樣可以方便地修改碰撞體的位置,并且可以旋轉(zhuǎn)碰撞體。
使用Prefab簡化你的工作
在搭建完樓梯之后,我們在階層面板中找到Stair這個物體,在項目面板中打開Prefab文件夾,將Stair這個物體拖動到文件夾里面,這樣就形成了一個Prefab預(yù)設(shè)。

這個預(yù)設(shè)保存著游戲中該物體的所有信息,包括其子物體相對于父物體的各種信息,于是我們剛才搭建的碰撞體就被保存了下來。
如果需要修改Prefab預(yù)設(shè)的話,這時我們只需在場景中找到該預(yù)設(shè),或?qū)㈩A(yù)設(shè)拖動到場景中,修改其內(nèi)容,然后再點擊階層面板中的Apply按鈕即可,這時所有場景中的該預(yù)設(shè)都會隨之而改變。
在我們完成一個樓層的搭建之后,將該樓層保存成預(yù)設(shè)。

于是,很短的時間之內(nèi),我們就完成了整個樓層內(nèi)部結(jié)構(gòu)的場景的搭建。

增加光照
在場景中,我們在相對的位置增加點光源用來模擬燈泡。

然后我們在window里面打開Lighting這個選項。將其拖動至合適的地方。

我選擇的是右側(cè)面板。
然后點擊Lighting下面的Object選項,選中Renderer。

這時左面的階層面板中將場景中的所有Mesh Renderer的物體都顯示出來了,我們選中所有的Mesh物體。

然后再回到Object選項中,勾選中Lightmap Static,這樣的話,烘焙光照貼圖的時候就會對所有的物體進行烘焙。然后再根據(jù)需求,更改光照貼圖的分辨率吧。最后點擊烘焙開始烘焙我們的場景。