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