using Fort23.Core; using UnityEngine; using UnityEngine.UI; namespace Fort23.Mono { [UIBinding(prefab = "TxtGuildPanel" )] public partial class TxtGuildPanel : UIPanel { public static async void OpenTxtGuildPanel(string meg, Vector2 worldPos) { TxtGuildPanel txtGuildPanel = await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Middle); txtGuildPanel.SetTipMessage(meg, worldPos); } public static async void CloseTxtGuildPanel() { TxtGuildPanel txtGuildPanel = UIManager.Instance.GetComponent(); UIManager.Instance.HideUIUIPanel(txtGuildPanel); } public override async CTask Open() { await base.Open(); GObjectPoolInterface.SetActive(false); } private void Init() { } 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 void SetTipMessage(string msg, Vector2 pos) { pos = this.transform.worldToLocalMatrix * pos; if (pos.x > 265) { pos.x = 265; } if (pos.x < -265) { pos.x = -265; } message.text = msg; RectTransform rectTransform = message.GetComponent(); message.SetLayoutDirty(); LayoutRebuilder.MarkLayoutForRebuild(rectTransform); LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform); rectTransform.GetComponent().SetLayoutVertical(); RectTransform bgTran = bg_icon.GetComponent(); // await TimerComponent.Instance.WaitAsync(30); // float y= LayoutUtility.GetPreferredSize(massge.GetComponent(), 0)+40; // massge. // 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); } } }