AppStartInitFinish_CreateLoginUI.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using UnityEngine;
  2. using FairyGUI;
  3. using Cysharp.Threading.Tasks;
  4. namespace ET.Client
  5. {
  6. [Event(SceneType.Client)]
  7. public class AppStartInitFinish_CreateLoginUI: AEvent<EventType.AppStartInitFinish>
  8. {
  9. protected override async ETTask Run(Scene scene, EventType.AppStartInitFinish args)
  10. {
  11. var ass = await YooAssetProxy.LoadAssetAsync<TextAsset>("FGUI_Login_fui");
  12. UIPackage.AddPackage(ass.GetAssetObject<TextAsset>().bytes, "Login", LoadPackageInternalAsync);
  13. var view = UIPackage.CreateObject("Login", "Login").asCom;
  14. var preView = GRoot.inst.GetChildAt(0);
  15. GRoot.inst.RemoveChildren();
  16. GRoot.inst.AddChild(view);
  17. preView.Dispose();
  18. UIPackage.RemovePackage("CheckForResUpdate");
  19. }
  20. /// <summary>
  21. /// 加载资源的异步委托
  22. /// </summary>
  23. /// <param name="name">注意,这个name是FGUI内部组装的纹理全名,例如FUILogin_atlas0</param>
  24. /// <param name="extension"></param>
  25. /// <param name="type"></param>
  26. /// <param name="item"></param>
  27. private static async void LoadPackageInternalAsync(string name,
  28. string extension, System.Type type, PackageItem item)
  29. {
  30. var tex = await YooAssetProxy.LoadAssetAsync<Texture>($"FGUI_{name}");
  31. item.owner.SetItemAsset(item, tex.GetAsset<Texture>(), DestroyMethod.Unload);
  32. }
  33. }
  34. }