然後為HealthCamera附加Camra的Component,EnemyHealth跟TowerHealth附加血條的貼圖,並調一下顏色,HealthController附加同名的script
然後打開HealthController這個script開始加入程式碼
我打算用這個script去管理所有的血條,所以我會有變數連結到攻擊方跟被攻擊方的血條物件TowerHealth和EnemyHealth,然後我把血條的物件放在另一個攝影機底下,這樣做是如果主場景是3D的,就不用去處理旋轉的問題,然後還有兩個變數是用來儲存最大血量,用來計算目前血量在總血量中的比例,還有一個偏移值是因為貼圖的定位點在左邊,在轉換座標時,血條的位置會有偏差,所以要修正一下。
我總共建立了6個方法,基本上攻擊者跟被攻擊者的方法差不多,都有初始化血條,更新血條的縮放,轉換座標位置來移動血條的座標。
在初始化血條的部分,我把1 除以最大血量再儲存在變數裡,這是因為做乘法比做除法快,所以我先除起來放著。在更新血條的部分,我把目前血量傳進來並跟除好的最大血量相乘,得到要縮放的比例,再去縮放血條大小。傳送攻擊者在螢幕上的位置,我把原物件在場景攝影機上的螢幕位置傳進來後再把它轉成血條攝影機裡的世界座標(
Scripting API)來達成跟著人物移動的效果。