遊戲地形
在遊戲的世界中,必定會有很多豐富多彩的遊戲元素融合其中。它們種類繁多,作用也不大相同。一般對於遊戲元素可分爲兩種:經常用,不經常用。常用的元素是遊戲中比較重要的元素,一般需要使用腳本來實現某些特殊功能。比如:玩家控制的主角對象,需要攻擊的敵人等。因此常用的元素直接影響遊戲的運行,而不常有的元素,比如說遊戲裏的天空,雲朵等。不影響遊戲的主線,僅僅提升遊戲的整體效果。
創建地形
在3D遊戲裏,經常會出現起伏的地形。本文變總結回顧下如何在遊戲裏創建遊戲地形。
首先在導航菜單欄裏選擇Terrain----Create Terrain創建一個遊戲地形。出現入選圖:
(經過我旋轉拉近後的,方便更加直觀的觀看)
地形參數
地形參數包括地形的寬度,高度,長度,分辨率,高度圖等。創建完地形後,便可以任意的修改它們。在導航菜單裏選擇Terrain----Set Resolution後,彈出Heightmap resoluton窗口。直接輸入修改即可。
簡單的介紹下Heightmap resoluton窗口中的參數:
Terrain Width:地形總寬度
Terrain Height:地形總高度
Terrain Length:地形總長度
Heightmap resoluton:地形高度圖的分辨率
Detail Resolution:細節分辨率,主要用於地形上的草或者其他模型,其數值越高,顯示效果越好。當然同時也需要越高的機器配置。
Detail Resolution per patch:細節分辨率補丁
Control Texture Resolution :控制貼圖分辨率
Base Texture Resolution :相對貼圖分辨率
編輯地形
到現在爲止,我們的地形還只是一個巨大的平面。要實現起伏的效果,首先在hierarchy視圖中,選擇Terrain 。此時會在右側的inspector視圖中來編輯地形。
在地形菜單中有起個按鈕:
他們的含義分別爲:編輯地形高度,編輯地形特定高度,平滑過度地形,地形貼圖,添加樹模型,添加草與網格模型,其他設置。
接着下面便是地形畫筆:
brush size:畫筆寬度取值範圍
Opacity:畫筆高度的取值範圍
選擇地形菜單和畫筆後,便可以編輯地形的起伏了。不過因爲地形貼圖默認是灰色,故會非常的難看。
在地形菜單中點擊第二個按鈕(編輯地形特定高度),此時打開設置地形特定高度頁面。與先前的頁面一樣,只是多了一個Height:
在編輯地形高度頁面中,Opacity:是最大高度,而在編輯特定高度頁面,Height纔是最大高度。比如在編輯特定高度頁面,Opacity的值是100,而Height的值是80,那麼地形最高爲80
如下圖,在地形菜單中點擊第三個按鈕(平滑過渡地形),然後選擇一個適合的畫筆,接着就可以平滑過度地形了。
平滑後的地形圖:
每當創建完地形後,系統都會自動的將Terrain Collider(地形碰撞)組件添加到地形中。該組件可以讓地形感應與其他物體之間的碰撞。給地形表皮一個物理材質後,地形上的物體將根據設置的碰撞參數而發生碰撞,比如說:彈力,動力,摩擦力等。
Material:物理材質,設置模型與地形碰撞後的物理摩擦效果
is trigger:是否開啓地形碰撞
Terrain data:地形資源,連接project視圖中的地形文件
create tree colliders:是否創建樹木碰撞
地形貼圖
系統默認的灰色地形實在是不可恭維。在實際中,爲了讓地形看起來更加美觀。unity提供了地形標準資源包。首先我們需要將地形資源包導入當前的工程中。在project視圖中點擊鼠標右鍵,選擇import-----Terrain Assets。
導入後,學習怎麼給地形添加新的貼圖。首先在地形菜單欄中點擊第四個按鈕(地形貼圖),可發現目前在Textures列表中沒有任何地形貼圖。點擊右下角edit---textures(編輯貼圖),將彈出一個選擇列表。
在選擇列表中,選擇add Textures選項,將會出現下圖左邊窗口。
先簡要說明下各參數意義:
texture:在資源文件夾中選擇一張地形貼圖
normal map:在資源文件夾中選擇一張正常地形貼圖
size x:貼圖x軸寬度
size y:貼圖y軸寬度
offset x:貼圖x軸偏移量
offset y:貼圖y軸偏移量
點擊texture中的select,將彈出select texture2D窗口,該頁面所有的貼圖文件都源於project視圖中的文件夾。
然後在select texture2D窗口中選擇任意貼圖雙擊,然後在add terrain Textures窗口中右下角點擊add即可.
在添加地形貼圖後,就可以渲染貼圖了。首先選擇一個渲染的貼圖文件夾,然後選擇一個渲染筆。最後直接在scene視圖中渲染就行了。