TxtGuildPanel.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Fort23.Core;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. namespace Fort23.Mono
  5. {
  6. [UIBinding(prefab = "TxtGuildPanel" )]
  7. public partial class TxtGuildPanel : UIPanel
  8. {
  9. public static async void OpenTxtGuildPanel(string meg, Vector2 worldPos)
  10. {
  11. TxtGuildPanel txtGuildPanel =
  12. await UIManager.Instance.LoadAndOpenPanel<TxtGuildPanel>(null, UILayer.Middle);
  13. txtGuildPanel.SetTipMessage(meg, worldPos);
  14. }
  15. public static async void CloseTxtGuildPanel()
  16. {
  17. TxtGuildPanel txtGuildPanel = UIManager.Instance.GetComponent<TxtGuildPanel>();
  18. UIManager.Instance.HideUIUIPanel(txtGuildPanel);
  19. }
  20. public override async CTask Open()
  21. {
  22. await base.Open();
  23. GObjectPoolInterface.SetActive(false);
  24. }
  25. private void Init()
  26. {
  27. }
  28. protected override void AddEvent()
  29. {
  30. }
  31. protected override void DelEvent()
  32. {
  33. }
  34. public override void AddButtonEvent()
  35. {
  36. // button_bg.onClick.AddListener(OnClickButton_bg);
  37. }
  38. private void OnClickButton_bg()
  39. {
  40. UIManager.Instance.HideUIUIPanel(this);
  41. }
  42. public void SetTipMessage(string msg, Vector2 pos)
  43. {
  44. pos = this.transform.worldToLocalMatrix * pos;
  45. if (pos.x > 265)
  46. {
  47. pos.x = 265;
  48. }
  49. if (pos.x < -265)
  50. {
  51. pos.x = -265;
  52. }
  53. message.text = msg;
  54. RectTransform rectTransform = message.GetComponent<RectTransform>();
  55. message.SetLayoutDirty();
  56. LayoutRebuilder.MarkLayoutForRebuild(rectTransform);
  57. LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform);
  58. rectTransform.GetComponent<ContentSizeFitter>().SetLayoutVertical();
  59. RectTransform bgTran = bg_icon.GetComponent<RectTransform>();
  60. // await TimerComponent.Instance.WaitAsync(30);
  61. // float y= LayoutUtility.GetPreferredSize(massge.GetComponent<RectTransform>(), 0)+40;
  62. // massge.
  63. // massge.OnRebuildRequested();
  64. float y = rectTransform.sizeDelta.y + 40;
  65. if (y < 100)
  66. {
  67. y = 100;
  68. }
  69. // bgTran.sizeDelta = new Vector2(bgTran.sizeDelta.x, y);
  70. float maxY = this.transform.sizeDelta.y / 2;
  71. float my2 = y / 2;
  72. if (pos.y > maxY - my2)
  73. {
  74. pos.y = maxY - my2;
  75. }
  76. if (pos.y < my2 - maxY)
  77. {
  78. pos.y = my2 - maxY;
  79. }
  80. dotPoint.anchoredPosition = pos;
  81. LayoutRebuilder.MarkLayoutForRebuild(bgTran);
  82. LayoutRebuilder.ForceRebuildLayoutImmediate(bgTran);
  83. GObjectPoolInterface.SetActive(true);
  84. }
  85. }
  86. }