12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using UnityEngine;
- using UnityEngine.UI;
- using static System.Net.Mime.MediaTypeNames;
- namespace ET.Client
- {
- [FriendOf(typeof(UIAlertComponent))]
- public static class UIAlertComponentSystem
- {
- [ObjectSystem]
- public class UIAlertComponentAwakeSystem : AwakeSystem<UIAlertComponent>
- {
- protected override void Awake(UIAlertComponent self, params object[] param)
- {
- ReferenceCollector rc = self.GetParent<UI>().GameObject.GetComponent<ReferenceCollector>();
- self.cancelTxt = rc.Get<GameObject>("cancelTxt");
- self.sureTxt = rc.Get<GameObject>("sureTxt");
- self.contentTxt = rc.Get<GameObject>("contentTxt");
- self.titleTxt = rc.Get<GameObject>("titleTxt");
- self.cancelBtn = rc.Get<GameObject>("cancelBtn");
- self.cancelBtn.GetComponent<Button>().onClick.AddListener(() => { self.OnCloseBtn(0); });
- self.sureBtn = rc.Get<GameObject>("sureBtn");
- self.sureBtn.GetComponent<Button>().onClick.AddListener(() => { self.OnCloseBtn(1); });
- Dictionary<string,object> dic = param[0] as Dictionary<string,object>;
- string title = dic["title"] as string;
- string content = dic["content"] as string;
- string yesTxt = dic["yesTxt"] as string;
- string cancelTxt = dic["cancelTxt"] as string;
- self.callback = dic["callback"] as Action<object>;
- self.Init(title, content, yesTxt, cancelTxt);
- }
- }
- private static void Init(this UIAlertComponent self, string title, string content, string yesTxt, string cancelTxt)
- {
- self.titleTxt.GetComponent<UnityEngine.UI.Text>().text = title;
- self.cancelTxt.GetComponent<UnityEngine.UI.Text>().text = cancelTxt;
- self.sureTxt.GetComponent<UnityEngine.UI.Text>().text = yesTxt;
- self.contentTxt.GetComponent<UnityEngine.UI.Text>().text = content;
- }
- public static async void OnCloseBtn(this UIAlertComponent self,int index)
- {
- await SoundManager.Instance.PlaySound("clickbtnsound");
- self.callback?.Invoke(index);
- self.callback = null;
- self.OnCloseAsync();
- }
- public static async void OnCloseAsync(this UIAlertComponent self)
- {
- await UIHelper.Remove(self.ClientScene(),UIType.UIAlert);
- }
- }
- }
|