using UnityEngine; using FairyGUI; using Cysharp.Threading.Tasks; namespace ET.Client { [Event(SceneType.Client)] public class AppStartInitFinish_CreateLoginUI: AEvent { protected override async ETTask Run(Scene scene, EventType.AppStartInitFinish args) { var ass = await YooAssetProxy.LoadAssetAsync("FGUI_Login_fui"); UIPackage.AddPackage(ass.GetAssetObject().bytes, "Login", LoadPackageInternalAsync); var view = UIPackage.CreateObject("Login", "Login").asCom; var preView = GRoot.inst.GetChildAt(0); GRoot.inst.RemoveChildren(); GRoot.inst.AddChild(view); preView.Dispose(); UIPackage.RemovePackage("CheckForResUpdate"); } /// /// 加载资源的异步委托 /// /// 注意,这个name是FGUI内部组装的纹理全名,例如FUILogin_atlas0 /// /// /// private static async void LoadPackageInternalAsync(string name, string extension, System.Type type, PackageItem item) { var tex = await YooAssetProxy.LoadAssetAsync($"FGUI_{name}"); item.owner.SetItemAsset(item, tex.GetAsset(), DestroyMethod.Unload); } } }