从零点五开始用Unity做半个2D战棋小游戏(六)
好久不見。
這是第23篇與游戲開發(fā)有關(guān)的文章。
| 寫在最前
這次想要一個簡單且傳統(tǒng)的戰(zhàn)棋小游戲,大概的玩法是:在2D世界里創(chuàng)建一張由六邊形地塊組成的戰(zhàn)斗地圖,敵我雙方依據(jù)體力在地圖上輪流行動并向?qū)Ψ桨l(fā)動攻擊,先消滅掉所有敵人的一方將獲得勝利。
預(yù)計將分為以下幾篇(未完成前可能會調(diào)整...):
1、創(chuàng)建戰(zhàn)場(已完成)
根據(jù)預(yù)定尺寸生成戰(zhàn)場地圖,并隨機一些障礙物。
2、添加地圖功能 (已完成)
實現(xiàn)戰(zhàn)場格子點擊反饋,地圖導(dǎo)航及范圍選定。
3、添加對戰(zhàn)雙方(已完成)
向戰(zhàn)場中添加作戰(zhàn)單位,作戰(zhàn)單位輪流行動,可進行移動、攻擊。
4、加入玩家控制(已完成)
玩家可控制一個戰(zhàn)斗單位,手動選擇移動目標及攻擊單位。
5、添加常用的界面(已完成)
建立界面管理器,加入一些常用的界面。
6、添加常用的戰(zhàn)場顯示
為戰(zhàn)斗單位添加血條,加入傷害文字特效。
7、擴展作戰(zhàn)單位
豐富作戰(zhàn)單位的類型,添加職業(yè),并加入若干不同類型的技能。
8、擴展戰(zhàn)場地圖
豐富戰(zhàn)場地圖,加入地形及道具等元素。
9、規(guī)范戰(zhàn)斗配置
可以通過規(guī)范化的數(shù)據(jù)結(jié)構(gòu)配置戰(zhàn)場、職業(yè)、技能、道具等。
本次的主題是:為戰(zhàn)斗單位添加血條,加入傷害文字特效。
| 目標
為戰(zhàn)斗單位添加血條,加入傷害文字特效。
實現(xiàn)后的效果如下圖:
極其精致的血條
與3A游戲同款的傷害文字特效
| 添加血條
添加一個簡單的血條,主要由三部分構(gòu)成:紅色的底,綠色的條和生命值。
偷個懶,直接使用SpriteRenderer + TextMesh Pro來完成它。
一個簡單的血條
每次生命值變化時需要更新兩個東西:綠條的長度和生命值。
更新文字很容易,直接設(shè)置即可;更新綠條的長度呢?只要調(diào)整它在x方向上的縮放比例就行了。
通過Scale X來控制綠條的長度
但是需要注意將Sprite的錨點設(shè)置為Left,這樣僅調(diào)整x方向的縮放比例就能達到目的;如果錨點為Center的話,還需要同時調(diào)整Position X。
血條所用圖片的導(dǎo)入設(shè)置
| 添加傷害文字特效
好吧,再偷個懶,直接用一個TextMesh Pro配合一個Animator即可...
一個簡單的傷害文字特效
做法很簡單,將文字的動畫直接做在一個Animation Clip中,然后用二手手游賬號賣號平臺Animator Controller控制播放它們就行了。
錄制動畫
在這里我做了兩個動畫:一個普通傷害的動畫,和一個暴擊傷害的動畫(后面會用到)。當然,它們之間的顯示效果差別非常大。
普通傷害文字
暴擊傷害文字
后面就非常簡單了,在Animator面板中設(shè)置動畫播放規(guī)則,比如通過不同的Trigger來播放普通傷害特效或暴擊傷害特效,然后再在代碼中根據(jù)傷害類型設(shè)置對應(yīng)的Trigger即可。
用Trigger來區(qū)分這個Animator應(yīng)該播放哪個動畫
播放動畫
所以說,只要程序員愿意,做出絕美的特效也不在話下,嘿嘿。
| 寫在最后
至此,添加常用的戰(zhàn)場顯示篇就介紹到這里。后面會開始做一些豐富游戲內(nèi)容的工作,加油吧。
愿不忘初心。
下回見。
總結(jié)
以上是生活随笔為你收集整理的从零点五开始用Unity做半个2D战棋小游戏(六)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零点五开始用Unity做半个2D战棋小
- 下一篇: 从零点五开始用Unity做半个2D战棋小