private IWebNode _LoadUI <UIWindowT>(string resourcePath, Action <UIWindowBase> onLoaded) where UIWindowT : UIWindowBase, new() { var argument = new WebArgument { localPath = resourcePath, flags = WebFlags.UnloadAllLoadedObjects }; IWebNode ret = WebManager.Instance.LoadWebPrefab(argument, prefab => { using (prefab) { UIWindowBase window = null; Object scenceRoot = prefab.mainAsset.CloneEx(true); if (null != scenceRoot) { window = new UIWindowT(); window.Initialise(scenceRoot as GameObject); } if (null != onLoaded) { onLoaded(window); } } }); return(ret); }
private void _OnLoadAll(IWebNode web) { isDone = true; if (null != error) { Console.Error.WriteLine(error); } }
private void _OnLoadMainWeb(WebItem web) { _InitCallback_MainWeb(web); if (null != web.error) { error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] {0}, web.error={1}, web={2}" , Path.GetFileName(web.argument.localPath), web.error, web); _OnLoadAll(web); return; } var bundle = web.assetBundle; if (null == bundle) { error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] bundle is null, web={0}", web); _OnLoadAll(web); return; } var manif = WebManager.Instance.Manifest; string[] dependences = manif.GetAllDependencies(web.argument.localPath); if (null == dependences) { error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] dependences is null, web={0}", web); _OnLoadAll(web); return; } var nodes = new IWebNode[dependences.Length]; for (int i = 0; i < dependences.Length; ++i) { var arg = new WebArgument { localPath = dependences [i], flags = WebFlags.UnloadAllLoadedObjects }; var sharedPart = WebManager.Instance.LoadWebItem(arg, _OnLoadSimplePart); nodes[i] = sharedPart; } _partGroutp = new WebGroup(nodes, _OnLoadAll); web.HoldBabies(ref nodes); }