MessagePanel.cs 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class MessagePanel : Regist
  7. {
  8. #region Config
  9. public static Action OnPanelClosed;
  10. public static Text NicknameTitle;
  11. public static Text ContentTitle;
  12. public static Text TimeTitle;
  13. public static Text PanelTitle;
  14. public static Text PlaceholderTitle;
  15. public static Text InputText;
  16. public static Text SendMessageButtonTitle;
  17. public static Text CloseButtonTitle;
  18. public static Text LoadingTitle;
  19. public static Button CloseButton;
  20. public static Button SendMessageButton;
  21. public static Transform Grid;
  22. public static Transform MessagePanelMask;
  23. public static InputField InputField;
  24. public static ScrollRectPlus ScrollRect;
  25. public static AccountData AccountData;
  26. #endregion
  27. public override void RegistReference()
  28. {
  29. NicknameTitle = ResourceManager.Get<Text>(ObjectLabel.AH_NicknameTitle);
  30. ContentTitle = ResourceManager.Get<Text>(ObjectLabel.AH_ContentTitle);
  31. TimeTitle = ResourceManager.Get<Text>(ObjectLabel.AH_TimeTitle);
  32. PanelTitle = ResourceManager.Get<Text>(ObjectLabel.AH_PanelTitle);
  33. PlaceholderTitle = ResourceManager.Get<Text>(ObjectLabel.AH_PlaceholderTitle);
  34. InputText = ResourceManager.Get<Text>(ObjectLabel.AH_InputText);
  35. SendMessageButtonTitle = ResourceManager.Get<Text>(ObjectLabel.AH_SendMessageButtonTitle);
  36. CloseButtonTitle = ResourceManager.Get<Text>(ObjectLabel.AH_CloseButtonTitle);
  37. LoadingTitle = ResourceManager.Get<Text>(ObjectLabel.AH_LoadingTitle);
  38. CloseButton = ResourceManager.Get<Button>(ObjectLabel.AH_CloseButton);
  39. SendMessageButton = ResourceManager.Get<Button>(ObjectLabel.AH_SendMessageButton);
  40. Grid = ResourceManager.Get(ObjectLabel.AH_Grid);
  41. MessagePanelMask = ResourceManager.Get(ObjectLabel.AH_MessagePanelMask);
  42. InputField = ResourceManager.Get<InputField>(ObjectLabel.AH_InputField);
  43. ScrollRect = ResourceManager.Get<ScrollRectPlus>(ObjectLabel.AH_ScrollRect);
  44. LoadingTitle.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
  45. TweenRoot tweenRoot = MessagePanelMask.CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad);
  46. tweenRoot.OnBackwardFinish += () => { OnPanelClosed.SafeInvoke(); };
  47. LanguageManager.Add(NicknameTitle, new MulLanStr(LanguageLabel.UI__AH_NicknameTitle));
  48. LanguageManager.Add(ContentTitle, new MulLanStr(LanguageLabel.UI__AH_ContentTitle));
  49. LanguageManager.Add(TimeTitle, new MulLanStr(LanguageLabel.UI__AH_TimeTitle));
  50. LanguageManager.Add(PanelTitle, new MulLanStr(LanguageLabel.UI__AH_PanelTitle));
  51. LanguageManager.Add(PlaceholderTitle, new MulLanStr(LanguageLabel.UI__AH_PlaceholderTitle));
  52. LanguageManager.Add(SendMessageButtonTitle, new MulLanStr(LanguageLabel.UI__AH_SendMessageButtonTitle));
  53. LanguageManager.Add(CloseButtonTitle, new MulLanStr(LanguageLabel.UI__AH_CloseButtonTitle));
  54. CloseButton.onClick.AddListener(ClosePanel);
  55. SendMessageButton.onClick.AddListener(SendMessage);
  56. }
  57. public static void OpenPanel(AccountData accountData)
  58. {
  59. AccountData = accountData;
  60. MessagePanelMask.TweenForCG();
  61. }
  62. public static void ClosePanel()
  63. {
  64. AudioManager.PlayClip(ResourceLabel.CloseClip);
  65. MessagePanelMask.TweenBacCG();
  66. }
  67. private static void SendMessage()
  68. {
  69. AudioManager.PlayClip(ResourceLabel.BtnClip);
  70. InputField.text = "";
  71. SendMessageButton.interactable = false;
  72. }
  73. private static void SendMessageCallback()
  74. {
  75. SendMessageButton.interactable = true;
  76. }
  77. }