using Cysharp.Threading.Tasks; using FairyGUI; using UnityEngine; namespace ET.Client { [Event(SceneType.Client)] public class AppStartInitFinish_CreateLoginUI : AEvent { protected override async ETTask Run(Scene scene, EventType.AppStartInitFinish args) { Log.Debug("to load login ui."); var ass = await YooAssetProxy.LoadAssetAsync("FGUI_Login_fui"); UIPackage.AddPackage(ass.GetAssetObject().bytes, "Login", LoadPackageInternalAsync); var view = UIPackage.CreateObject("Login", "Login").asCom; view.name = "Login"; GRoot.inst.AddChild(view); InitLogin(scene, view); var preView = GRoot.inst.GetChildAt(0); GRoot.inst.RemoveChild(preView, true); 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); } private void InitLogin(Scene scene, GComponent view) { var account = view.GetChild("input_name"); var password = view.GetChild("input_password"); var btn = view.GetChild("Btn_Login"); btn.onClick.Add(() => { view.GetChild("img_tips").visible = false; view.GetChild("txt_tips").visible = false; btn.enabled = false; LoginHelper.Login(scene, account.text, password.text).Coroutine(); }); } } }