LoginFinish_CreateLobbyUI.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using FairyGUI;
  2. using Sirenix.Utilities;
  3. using UnityEngine;
  4. namespace ET.Client
  5. {
  6. [Event(SceneType.Client)]
  7. public class LoginFinish_CreateLobbyUI: AEvent<EventType.LoginFinish>
  8. {
  9. protected override async ETTask Run(Scene scene, EventType.LoginFinish args)
  10. {
  11. if(!args.exeception.IsNullOrWhitespace())
  12. {
  13. return;
  14. }
  15. Log.Debug("enter lobby.");
  16. var ass = await YooAssetProxy.LoadAssetAsync<TextAsset>("FGUI_Lobby_fui");
  17. UIPackage.AddPackage(ass.GetAssetObject<TextAsset>().bytes, "Lobby", LoadPackageInternalAsync);
  18. var view = UIPackage.CreateObject("Lobby", "Lobby").asCom;
  19. view.name = "Lobby";
  20. GRoot.inst.AddChild(view);
  21. InitView(scene, view);
  22. }
  23. /// <summary>
  24. /// 加载资源的异步委托
  25. /// </summary>
  26. /// <param name="name">注意,这个name是FGUI内部组装的纹理全名,例如FUILogin_atlas0</param>
  27. /// <param name="extension"></param>
  28. /// <param name="type"></param>
  29. /// <param name="item"></param>
  30. private static async void LoadPackageInternalAsync(string name,
  31. string extension, System.Type type, PackageItem item)
  32. {
  33. var tex = await YooAssetProxy.LoadAssetAsync<Texture>($"FGUI_{name}");
  34. item.owner.SetItemAsset(item, tex.GetAsset<Texture>(), DestroyMethod.Unload);
  35. }
  36. private void InitView(Scene scene, GComponent view)
  37. {
  38. var name = view.GetChild("userName");
  39. var level = view.GetChild("UserLevel");
  40. var gem = view.GetChild("txt_gem");
  41. var gold = view.GetChild("txt_gold");
  42. var point = view.GetChild("txt_point");
  43. name.text = "大老板";
  44. level.text = "99";
  45. gem.text = "888";
  46. gold.text = "666";
  47. point.text = "777";
  48. var btn = view.GetChild("Btn_PVP");
  49. btn.onClick.Add(() =>
  50. {
  51. EnterMapHelper.EnterMapAsync(scene).Coroutine();
  52. });
  53. btn = view.GetChild("Btn_RoomMode");
  54. btn.onClick.Add(() =>
  55. {
  56. EnterMapHelper.EnterMapAsync(scene).Coroutine();
  57. });
  58. }
  59. }
  60. }