123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using Fort23.Core;
- using UnityEngine;
- using UnityEngine.UI;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "TipMessagePanel")]
- public partial class TipMessagePanel : UIPanel
- {
- public static async void OpenTipMessagePanel(string meg, Vector2 worldPos)
- {
- TipMessagePanel tipMessagePanel =
- await UIManager.Instance.LoadAndOpenPanel<TipMessagePanel>(null, UILayer.Top);
- tipMessagePanel.SetTipMessage(meg, worldPos);
- }
- 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 > 186)
- {
- pos.x = 186;
- }
- if (pos.x < -186)
- {
- pos.x = -186;
- }
- message.text = msg;
- RectTransform rectTransform = message.GetComponent<RectTransform>();
- message.SetLayoutDirty();
- LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
- LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
- rectTransform.GetComponent<ContentSizeFitter>().SetLayoutVertical();
- RectTransform bgTran = bg_icon.GetComponent<RectTransform>();
- // await TimerComponent.Instance.WaitAsync(30);
- // float y= LayoutUtility.GetPreferredSize(massge.GetComponent<RectTransform>(), 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);
- }
- }
- }
|