UILobbyComponent.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using Model;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. namespace Hotfix
  6. {
  7. [ObjectSystem]
  8. public class UiLobbyComponentSystem : ObjectSystem<UILobbyComponent>, IAwake
  9. {
  10. public void Awake()
  11. {
  12. this.Get().Awake();
  13. }
  14. }
  15. public class UILobbyComponent : Component
  16. {
  17. private GameObject enterMap;
  18. private Text text;
  19. public void Awake()
  20. {
  21. ReferenceCollector rc = this.GetParent<UI>().GameObject.GetComponent<ReferenceCollector>();
  22. GameObject sendBtn = rc.Get<GameObject>("Send");
  23. GameObject sendRpcBtn = rc.Get<GameObject>("SendRpc");
  24. sendBtn.GetComponent<Button>().onClick.Add(this.OnSend);
  25. sendRpcBtn.GetComponent<Button>().onClick.Add(this.OnSendRpc);
  26. GameObject transfer1Btn = rc.Get<GameObject>("Transfer1");
  27. GameObject transfer2Btn = rc.Get<GameObject>("Transfer2");
  28. transfer1Btn.GetComponent<Button>().onClick.Add(this.OnTransfer1);
  29. transfer2Btn.GetComponent<Button>().onClick.Add(this.OnTransfer2);
  30. enterMap = rc.Get<GameObject>("EnterMap");
  31. enterMap.GetComponent<Button>().onClick.Add(this.EnterMap);
  32. this.text = rc.Get<GameObject>("Text").GetComponent<Text>();
  33. }
  34. private void OnSend()
  35. {
  36. // 发送一个actor消息
  37. SessionComponent.Instance.Session.Send(new Actor_Test() { Info = "message client->gate->map->gate->client" });
  38. }
  39. private async void OnSendRpc()
  40. {
  41. try
  42. {
  43. // 向actor发起一次rpc调用
  44. Actor_TestResponse response = (Actor_TestResponse) await SessionComponent.Instance.Session.Call(
  45. new Actor_TestRequest() { request = "request actor test rpc" });
  46. Log.Info($"recv response: {MongoHelper.ToJson(response)}");
  47. }
  48. catch (Exception e)
  49. {
  50. Log.Error(e.ToStr());
  51. }
  52. }
  53. private async void OnTransfer1()
  54. {
  55. try
  56. {
  57. Actor_TransferResponse response = (Actor_TransferResponse) await SessionComponent.Instance.Session.Call(
  58. new Actor_TransferRequest() {MapIndex = 0});
  59. Log.Info($"传送成功! {MongoHelper.ToJson(response)}");
  60. }
  61. catch (Exception e)
  62. {
  63. Log.Error(e.ToStr());
  64. }
  65. }
  66. private async void OnTransfer2()
  67. {
  68. Actor_TransferResponse response = (Actor_TransferResponse)await SessionComponent.Instance.Session.Call(
  69. new Actor_TransferRequest() { MapIndex = 1 });
  70. Log.Info($"传送成功! {MongoHelper.ToJson(response)}");
  71. }
  72. private async void EnterMap()
  73. {
  74. try
  75. {
  76. G2C_EnterMap g2CEnterMap = (G2C_EnterMap)await SessionComponent.Instance.Session.Call(new C2G_EnterMap());
  77. Hotfix.Scene.GetComponent<UIComponent>().Remove(UIType.UILobby);
  78. }
  79. catch (Exception e)
  80. {
  81. Log.Error(e.ToStr());
  82. }
  83. }
  84. }
  85. }