| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | using Core.Language;using Fort23.Core;using UnityEngine;using UnityEngine.UI;namespace Fort23.Mono{    [UIBinding(prefab = "TipMessagePanel")]    public partial class TipMessagePanel : UIPanel    {        public static async CTask<TipMessagePanel> OpenTipMessagePanel(string meg, Vector2 worldPos = default)        {            TipMessagePanel tipMessagePanel =                await UIManager.Instance.LoadAndOpenPanel<TipMessagePanel>(null, UILayer.Top, isFocus: false);            tipMessagePanel.SetTipMessage(meg, worldPos);            return tipMessagePanel;        }        public static async CTask<TipMessagePanel> OpenTipMessagePanel(int meg, Vector2 worldPos = default)        {            TipMessagePanel tipMessagePanel =                await UIManager.Instance.LoadAndOpenPanel<TipMessagePanel>(null, UILayer.Top, isFocus: false);            tipMessagePanel.SetTipMessage(LanguageManager.Instance.Text(meg), worldPos);            return tipMessagePanel;        }        public override async CTask Open()        {            await base.Open();            GObjectPoolInterface.SetActive(false);        }        private void Init()        {            isAddStack = false;        }        protected override void AddEvent()        {        }        protected override void DelEvent()        {        }        public override void AddButtonEvent()        {            button_bg.onClick.AddListener(OnClickButton_bg);        }        private void OnClickButton_bg()        {            UIManager.Instance.HideUIUIPanel(this);        }        public async void SetTipMessage(string msg, Vector2 pos)        {            pos = this.transform.worldToLocalMatrix * pos;            if (pos.x > 186)            {                pos.x = 186;            }            if (pos.x < -186)            {                pos.x = -186;            }            GObjectPoolInterface.SetActive(true);            message.text = msg;            RectTransform rectTransform = message.GetComponent<RectTransform>();            message.SetLayoutDirty();            //message.OnRebuildRequested();            LayoutRebuilder.MarkLayoutForRebuild(rectTransform);            LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);            rectTransform.GetComponent<ContentSizeFitter>().SetLayoutVertical();            RectTransform bgTran = bg_icon.GetComponent<RectTransform>();            // await TimerComponent.Instance.WaitAsync(100);            // float y2 = LayoutUtility.GetPreferredSize(rectTransform, 0) + 40;            // message.OnRebuildRequested();            // massge.OnRebuildRequested();            float y = rectTransform.sizeDelta.y + 40;            if (y < 100)            {                y = 100;            }            bgTran.sizeDelta = new Vector2(bgTran.sizeDelta.x, y);            float maxY = this.transform.sizeDelta.y / 2;            float my2 = y / 2;            if (pos.y > maxY - my2)            {                pos.y = maxY - my2;            }            if (pos.y < my2 - maxY)            {                pos.y = my2 - maxY;            }            dotPoint.anchoredPosition = pos;            LayoutRebuilder.MarkLayoutForRebuild(bgTran);            LayoutRebuilder.ForceRebuildLayoutImmediate(bgTran);            GObjectPoolInterface.SetActive(true);        }    }}
 |