using BX; using DG.Tweening; using TMPro; using UnityEngine; using UnityEngine.UI; /// /// 通用UI /// public partial class GeneralUI : UIBaseClass { /// /// 广告倒计时 /// private float aDCountDown; /// /// 金币 /// public TextMeshProUGUI playerMoney; /// /// 倒计时 /// public TextMeshProUGUI countDown; /// /// 加金币显示 /// public TextMeshProUGUI addMoney; /// /// 广告状态 /// public TextMeshProUGUI adState; /// /// 倒计时条 /// public Image countDownBar; /// /// 箱子 /// public Image box; /// /// 广告按钮 /// public Button adBtn; /// /// 飞金币起点 /// public Transform flyMoneyStartPoint; /// /// 飞金币终点 /// public Transform flyMoneyEndPoint; /// /// 广告对象 /// public GameObject adObj; /// /// 金币对象 /// public GameObject moneyObj; /// /// 红点 /// public GameObject redDot; private void Start() { AdBtnListener(); } public override void OnShow() { base.OnShow(); OpeningHiding(); aDCountDown =GameNumericalValue.ADCountDown-TimeManager.Instance.GetSubSeconds(UserDataManager.Instance.userData.aDDateTime, System.DateTime.Now, E_IntervalType.S); Init(); SetMoney(UserDataManager.Instance.userData.money); } /// /// 初始化 /// private void Init() { if (!adObj.activeInHierarchy) return; if (aDCountDown <= 0) { BXSdk.Instance.LogEvent("RV_Button_Show",new System.Collections.Generic.Dictionary() { {"Position","RV_GetCoin"} }); redDot.gameObject.SetActive(true); adObj.transform.DOScale(Vector3.one * 0.9f, 0.5f).SetLoops(-1, LoopType.Yoyo); countDownBar.fillAmount = 1; countDown.text = "0:00"; adState.text = "GET"; addMoney.text = "+20000"; box.sprite = YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData,"Box_Open"); } else { BXSdk.Instance.LogEvent("RV_Button_Show", new System.Collections.Generic.Dictionary() { {"Position","RV_GetNow"} }); redDot.gameObject.SetActive(false); adObj.transform.DOKill(); adObj.transform.localScale = Vector3.one; adState.text = "GETNOW"; addMoney.text = "Await"; box.sprite = YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "Box_Hide"); } } /// /// 设置金币显示 /// public void SetMoney(int value) { playerMoney.text = value.ToString(); } private void FixedUpdate() { if (aDCountDown>0) { aDCountDown -= Time.deltaTime; countDown.text = TimeManager.Instance.ConversionTable(aDCountDown,E_MoreThanType.MS); countDownBar.fillAmount =1-(aDCountDown / GameNumericalValue.ADCountDown); if(aDCountDown<=0) { Init(); } } } /// /// 广告按钮监听 /// private void AdBtnListener() { adBtn.onClick.AddListener(() => { if (aDCountDown <= 0) { SDKManager.Instance.ShowReward("RV_GetCoin", () => { DesSweepAway(); UserDataManager.Instance.SetAdTime(); aDCountDown = GameNumericalValue.ADCountDown - TimeManager.Instance.GetSubSeconds(UserDataManager.Instance.userData.aDDateTime, System.DateTime.Now, E_IntervalType.S); Init(); UserDataManager.Instance.AddMoney(20000); UIManager.Instance.GetUI().FlyStuff(E_StuffType.Money, flyMoneyStartPoint, flyMoneyEndPoint, () => { Scenes.Instance.GoldCoin(); }, 100); UserDataManager.Instance.userData.skillUpgradeData.Clear(); UIManager.Instance.GetUI()?.SetSkillUIObjs(); }); } else { SDKManager.Instance.ShowReward("RV_GetNow", () => { aDCountDown = 0; Init(); }); } }); } }