using System.Collections; using System.Collections.Generic; using System.Threading; using UnityEngine; public class GameMgr:SingletonAutoMono { //玩家是否开始攻击 public bool isStartAtk = true; //飞剑是否应该消失 public bool isFeijianClose = false; //人物界面灵气和弹窗是否立即消失 public bool isUserNumAndGas = false; void Start() { StartCoroutine(UserGasAdd()); } /// /// 上线后每5秒自动加灵气 /// IEnumerator UserGasAdd() { while (true) { yield return new WaitForSeconds(5f); //具体显示的灵气数值 int gas = GameDataMgr.Instance.player.minuteGas / 12; GameDataMgr.Instance.player.gas += gas; if (UIManager.Instance.GetPanel()!=null) { EventCenter.Instance.EventTrigger(E_EventType.E_Pool_GasTip,gas); } //更新TopPanel面板上的数据 if (UIManager.Instance.GetPanel() != null) { UIManager.Instance.GetPanel().UpdatePanel(); } //保存玩家数据 GameDataMgr.Instance.PlayerDataSave(); } } //玩家和怪物重置方法 public void StartInit() { StartCoroutine(InitPlayerAndMonster()); } //玩家或者怪物死亡时,等待1s,重置怪物和玩家 private IEnumerator InitPlayerAndMonster() { yield return new WaitForSeconds(2f); EventCenter.Instance.EventTrigger(E_EventType.E_Player_Init); EventCenter.Instance.EventTrigger(E_EventType.E_Monster_Init); //开启攻击 isStartAtk = true; } // 将数字转换为简化后的表示 public string SetNumber(long num) { if (num >= 1000000) { return ((float)num / 1000000).ToString("F2") + "百万"; } else if (num >= 10000) { return ((float)num / 10000).ToString("F2") + "万"; } else if (num >= 100000000) { return ((float)num / 100000000).ToString("F2") + "亿"; } else { return num.ToString(); } } // 将十六进制颜色转换为 Color public Color HexToColor(string hex) { byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); return new Color32(r, g, b, 255); } public Color HexToColorAlaph(string hex) { byte r = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); return new Color32(r, g, b, 120); } /// /// 弹出获得奖励消息 /// /// /// /// public void StartTip(int stone, int yuan) { StartCoroutine(TipMessage(stone, yuan)); } /// /// 弹窗奖励消息协程 /// /// /// /// /// IEnumerator TipMessage(int stone, int yuan) { if (UIManager.Instance.GetPanel() != null) { UIManager.Instance.GetPanel().UpdatePanel(); } EventCenter.Instance.EventTrigger(E_EventType.E_Pool_Register2, "你获得了灵石+" + SetNumber(stone)); yield return new WaitForSeconds(0.5f); EventCenter.Instance.EventTrigger(E_EventType.E_Pool_Register2, "你获得了源石+" + yuan); } }