ScoreBar.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. public class ScoreBar : MonoBehaviour {
  5. public Text blueScoreText;
  6. public Text redScoreText;
  7. public Text timeLeftText;
  8. public TopHeadBar[] blueHeadBarArr;
  9. public TopHeadBar[] redHeadBarArr;
  10. private BattleController battleController;
  11. public void Init(BattleController battleController)
  12. {
  13. this.battleController = battleController;
  14. FixedUpdate();
  15. }
  16. public void updateScore(int blueScore, int redScore)
  17. {
  18. blueScoreText.text = blueScore.ToString();
  19. redScoreText.text = redScore.ToString();
  20. }
  21. public void SetPlayer(Player player)
  22. {
  23. TopHeadBar[] arr = player.team == TeamUtil.Team.Blue ? blueHeadBarArr : redHeadBarArr;
  24. for(int i=0; i<arr.Length; i++)
  25. {
  26. TopHeadBar bar = arr [i];
  27. if(bar.GetPlayer() == null)
  28. {
  29. player.index = i;
  30. bar.SetPlayer (player);
  31. break;
  32. }
  33. }
  34. }
  35. public TopHeadBar GetHeadBar(Player player)
  36. {
  37. TopHeadBar[] arr = player.team == TeamUtil.Team.Blue ? blueHeadBarArr : redHeadBarArr;
  38. if(player.index >=0 && player.index < arr.Length)
  39. return arr[player.index];
  40. return null;
  41. }
  42. private float lastUpdateTime;
  43. private float updateInterval = 0.2f;
  44. void FixedUpdate()
  45. {
  46. if (GameTime.time - lastUpdateTime < updateInterval) {
  47. return;
  48. }
  49. lastUpdateTime = GameTime.time;
  50. if(battleController.clock.freeTimeLeft > 0)
  51. timeLeftText.text = "<color=\"#f29c00ff\">"+NumberUtil.getTimeString(Mathf.CeilToInt(battleController.clock.freeTimeLeft), false)+"</color>";
  52. else
  53. timeLeftText.text = NumberUtil.getTimeString(Mathf.CeilToInt(battleController.clock.timeLeft), false);
  54. }
  55. }