using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class AssetsPanel : MonoBehaviour { [Header("按钮,记得对应关系")] public Button but1; public Button but2; public Button but3; public Button but4; [Header("按下按钮显示的panel,目前是同一个")] public GameObject mygameObject; public bool is_one = false; public Text Stone; public Text Coin; public Text Ore; public Text Forging; public Text UserName; public Text UserID; public Image UserHead; public Text PersonaText; public Text PersonID; private bool isUpdating=false; // Start is called before the first frame update void Start() { if (but1 != null) { but1.onClick.AddListener(() => { mygameObject.GetComponent().ShowPanel(2); }); } if (but2 != null) { but2.onClick.AddListener(() => { mygameObject.GetComponent().ShowPanel(1); }); } if (but3 != null) { but3.onClick.AddListener(() => { mygameObject.GetComponent().ShowPanel(3); }); } if (but4 != null) { but4.onClick.AddListener(() => { mygameObject.GetComponent().ShowPanel(4); }); } InvokeRepeating("UpDateText", 1f,1f); } private void UpDateText() { // 如果正在执行异步操作,直接返回,不进行重复调用 if (isUpdating) return; UpdateTaxt(); } async void UpdateTaxt() { isUpdating = true; PlayerInfoData _PlayerInfoData = await Scene_main_jiekou.instance.PlayerInfos(); Stone.text = _PlayerInfoData.gem.ToString(); Coin.text = _PlayerInfoData.gold.ToString(); Ore.text = _PlayerInfoData.water.ToString(); Forging.text = _PlayerInfoData.forge.ToString(); _PlayerInfoData = null; // 异步操作完成,标记为未执行 isUpdating = false; } private void OnEnable() { InvokeRepeating("UpDateText", 1f, 1f); } private void OnDisable() { CancelInvoke("UpDateText"); } }