最近課程實訓選修Unity,講解的是Unity官方案例——SpaceShoot,培訓無聊,便想着給游戲角色制作一下血條,以此增加游戲的可玩性。
Unity版本:5.4.1
案例模版:太空射擊
原文作者:茄閣雲雲
原文連接:http://www.cnblogs.com/vmoor2016/p/6044941.html
把一個大象裝進冰箱里需要三步:①把冰箱門打開;②把大象塞冰箱里;③關上冰箱門。
那么制作一個角色的血條需要幾部呢?在這里也划分為三步:①制作血條;②擺放血條;③操作血條。
下面就來給大家分享下血條的制作步驟。
第一步:制作血條
- 選中游戲對象,在游戲對象下創建子物體Canvas,步驟:選擇游戲物體-右鍵-UI 選擇創建
Canvas;
- 創建血條,步驟:選擇創建好的Canvas,然后,右鍵-UI 選擇創建Slider;
此時在游戲Scene視圖中便可以看到一個白框即Canvas畫布,還有血條原型Slider。
展開Slider(如下圖第二張)就可以發現組成滑動條的三個組件:
Background,背景顏色;Fill Area,填充顏色;Handle SliderArea:滑動柄。
為了方便看到制作效果,現在修改Slider屬性,選中Slider,在Inspector面板的組件
Slider(Script)里修改Min Value=0,Max Value=10,Value=10。現在開始制作血條:
- 去掉Handle(滑動柄):選擇Handle SliderArea,按Delete鍵刪除(當然也
可以在Inspector面板中取消選中該物體),然后就可以發現圓圓的滑動柄消失了。
- 修改背景色與填充色:選擇FillArea下的Fill,在Inspector面板下找到Image(Script)組件,
在其中可以修改Slider的填充色,同樣選擇Background修改背景色。
- 調整Fill Area(填充區域):上一步執行后發現,雖然Slider的當前值Value等於Max Value
,但血條並未被填滿。現在選擇Fill Area在Inspector面板中修改Rect Transform中個屬性,
將Left、Right的值都設為0(見下圖),至此一個簡單的血條就制作完成了。
第二步:擺放血條
到目前為止血條還沒有出現在相機視的野里,這是由於Canvas(畫板)的屬性設置原因,在
Inspector面板下查看Canvas渲染屬性(Render Mode)。
渲染方式有三種,默認的是Screen Space-Overlay。在本步驟后補充會簡單介紹前兩種渲染
方式,現在先將Render Mode改為World Space(全局)。
修改后便會發現,Inspector面板中的Rect Transform組件可以修改了。
這就意味着我們可以通過旋轉拖放將血條擺放到合適的位置。具體擺放步驟如下:
- 修改Canvas的位置,將Pos x,Pos Y設為0;
- 旋轉Canvas:由於Canvas相當於一個面,所以如果相機從垂直角度拍攝將看不到畫板
上的任何東西,旋轉Canvas使其正對Main Camera(我這里相機在Y軸垂直向下拍攝,
故將Canvas繞X軸旋轉了90度),這時大大的血條便在Game場景下出現了。
- 修改Slider尺寸:不用說,這么大的血條肯定要修改下尺寸,在這里推薦使用Scale
(縮放工具)進行大小修改。當然你也可以通過修改寬高來實現,不過控制不好寬高
比例將帶來意想不到的效果(不服可以親自嘗試一下)。
- 修改Canvas尺寸:這么小的血條用不了那么大的Canvas畫板,因此將Canvas的大小
修改為與血條相當即可,這里推薦直接修改寬高,如圖。至此擺放血條的工作都已經完成
了,可以選中移動工具進行演示,可以發現血條照預期的那樣跟隨角色移動。
下面為補充內容,不感興趣可以跳過。
補充:
上面提到Canvas的三種渲染模式,在這里再對前兩種進行簡單說明:
1.Screen Space - Overlay:默認的渲染模式,此模式Canvas位置大小不可改變,但可以通過
移動父物體來間接改變,Canvas的起始位置就是父物體的位置,大小和設置的顯示屏幕大小
有關(如下圖1,我這里是600*900),更改不同的顯示大小,Canvas的形狀大小也將會發生
改變。此模式不需要UI相機,Canvas上的內容將顯示在所有游戲物體之前。
2.Screen Space - Camera:此模式Canvas位置大小不可改變,需要指定UI相機(可以發
現多出來一個Render Camera,默認是不指定相機的),Canvas畫布大小根據相機視野來
定,可以將Main Camera掛載到上面觀察效果,畫布上的內容將一直顯示在相機視野里,且
顯示在所有游戲物體之前。
第三步:操縱血條
關於血條的操作就要用到腳本來控制了。操作很簡單,因此腳本很簡單,感興趣可以查看一下。

1 using UnityEngine; 2 using System.Collections; 3 using UnityEngine.UI; //添加UI命名空間 4 5 public class PlayerCollide : Collide { 6 7 public Slider HPStrip; //添加血條Slider的引用 8 public int HP; 9 void Start () { 10 HPStrip.value = HPStrip.maxValue = HP; //初始化血條 11 } 12 public void OnHit(int damage){ 13 HP -= damage; 14 HPStrip.value=HP; //適當的時候對血條執行操作 15 } 16 }
血條制作過程就到此結束了,喜歡的話就頂一下吧。
本文的血條制作過程系作者原創,不足之處歡迎評論指證,尊重原創,轉載請注明出處。