小地圖的基本概念眾所周知,小地圖(或雷達)是用於顯示周圍環境信息的。首先,小地圖是以主角為中心的。其次,小地圖上應該用圖標來代替真實的人物模型,因為小地圖通常很小,玩家可能無法看清真實的模型。大多數小地圖都是圓形的,所以本文也將創建圓形小地圖。通常小地圖周圍還會有一些按鈕和標簽,本文也會介紹。 創建 ...
小地圖的基本概念
眾所周知,小地圖(或雷達)是用於顯示周圍環境信息的。首先,小地圖是以主角為中心的。其次,小地圖上應該用圖標來代替真實的人物模型,因為小地圖通常很小,玩家可能無法看清真實的模型。
大多數小地圖都是圓形的,所以本文也將創建圓形小地圖。通常小地圖周圍還會有一些按鈕和標簽,本文也會介紹。
創建場景
新建場景,導入Unity Chan模型作為玩家,導入兩個機器人作為敵人。
游戲視圖
添加一個新的相機。依次點擊菜單項GameObject -> Camera新建相機並命名為Minimap Camera。然後將該相機設為Unity Chan的子對象,並將其坐標設為Unity Chan上方10個單位,把相機對準Unity Chan模型。
設置Minimap Camera
為了達到更好的效果,將position設為(0, 10, 0),rotation設為(90, 0, 0)。現在相機顯示效果如下:
但這還不是小地圖。現在運行場景,你可以看到只有上圖中的內容顯示出來。我們必須把小地圖做成一個UI元素。
渲染到UI層
這裡需要用到Render Texture來實現。依次點擊菜單項Assets -> Create -> Render Texture新建Render Texture並命名為Minimap Render Texture。
選中Minimap Camera後在檢視面板將Target Texture欄位設為Minimap Render Texture。
現在運行場景會發現Minimap Camera中的內容不見了,這是因為它被顯示到了新建的Render Texture中。
下麵新建Canvas來添加UI元素。依次點擊菜單項GameObject -> UI -> Canvas來新建Canvas。
這裡需要使用Raw Image在Canvas中顯示Render Texture的內容。依次點擊菜單項GameObject -> UI -> Raw Image新建Raw Image,然後命名為Minimap Image,在檢視面板中將Texture欄位設為Minimap Render Texture。
現在Minimap Camera相機中的內容可以作為UI來顯示了!
下麵將小地圖變為圓形。這裡需要用到一張簡單的遮罩紋理:
新建Image併為其添加Mask組件,將Image的Source Image欄位設為上面的遮罩圖片,並將Minimap Image設為Mask的子對象。
註意:為了達到更好的視覺效果,記得禁用遮罩紋理的Mipmap。
現在小地圖顯示效果如下:
小地圖的白色背景看起來不太美觀,給它加一個邊框:
為了讓整個小地圖移動起來更方便,新建一個空的GameObject命名為Minimap,並將所有對象設為Minimap子對象。
最後將小地圖移至屏幕右上角。
效果不錯吧?但這還不是真正意義上的小地圖,只是相機從頂部取景的圖像而已。接下來通過Layer來做一些設置!
設置Layer
這裡需要新建一個Layer。依次點擊菜單項Edit -> Project Settings -> Tags and Layers新建Layer命名為Minimap。
然後新建三個球體。一個設為藍色代表Unity Chan。將該球體設為Unity Chan的子對象,並將其Layer設為Minimap。
對兩個機器人進行同樣的操作,將球體改為紅色。
現在最關鍵的一步來了!選中Main Camera並確保其Culling Mask中不包括Minimap這一層。
然後選中Minimap Camera讓其Culling Mask只包括Minimap這一層。
現在這個小地圖看起來就比較完善了!
最後步驟
還可以做一些調整。首先將Minimap Camera的Clear Flags設為Solid Color並將其顏色改為淺灰色,以便讓小地圖背景與小球的對比度更強。
還可以添加一些UI元素來操作小地圖。這裡使用標簽作為示例,最後結果如下:
當角色或機器人移動時,小地圖上的小球也會即時更新位置。
更多unity2018的功能介紹請到paws3d爪爪學院查找。