protected override void OnAwake() { base.OnAwake(); // 加载Perfab AssetBundleMgr.GetInstance().AsyncLoad(@"ui/roles/select_character", AsyncLoadCallBack, null); }
public void Update() { foreach (var key in _removeObjs) { UiBase uibase = _uiInses[key]; uibase.Destroy(); _uiInses.Remove(key); } _removeObjs.Clear(); foreach (var one in _addObjs.Values) { _uiInses.Add(one.GetUiComplexType(), one); // 开始资源加载 GameLogger.GetInstance().Trace("-- ui open:" + one.GetType()); var uiAb = UiFactory.GetInstance().GetAssetBundle(one.GetUiType()); if (uiAb != null) { AssetBundleMgr.GetInstance().AsyncLoad(uiAb, AsyncLoadCallBack, one.GetUiComplexType()); } else { // 空界面,做逻辑切换用的,不需要gameobject表现 one.AttachGameObject(null); } } _addObjs.Clear(); foreach (var one in _uiInses) { one.Value.Update(); } }
public void Init() { // 加载 _canvas foreach (var one in _baesUrl) { AssetBundleMgr.GetInstance().AsyncLoad(one, AsyncLoadCallBackCanvasBg, one); } }
void Start() { Global.GetInstance().SetResPath(ResPath); Global.GetInstance().SetReferencePath(ReferencePath); Global.GetInstance().SetServer(ServerIp, ServerPort); AssetBundleMgr.GetInstance().Init(); _state = ReadyToLoadStateType.Init1; }
private void AsyncLoadCallBackCanvasBg(object context, AssetBundle ab) { if (context == null) { return; } string url = context as string; AssetBundleMgr.GetInstance().SetDontRelease(url); }
public void Update() { switch (_state) { case ReadyToLoadStateType.Init1: { if (!AssetBundleMgr.GetInstance().IsInited()) { break; } UiMgr.GetInstance().Init(); _state = ReadyToLoadStateType.Init2; break; } case ReadyToLoadStateType.Init2: { if (!UiMgr.GetInstance().IsInited()) { break; } _state = ReadyToLoadStateType.LoadScene; break; } case ReadyToLoadStateType.LoadScene: { // 初始化加载,下面二行可以优化成加载类 GameMain.GetInstance().Init(); // 设置 加载场景需要加载的数据 AsyncLoaderCache cache = AsyncLoaderCache.GetInstance(); cache.Loaders.Clear(); AsyncLoaderScene ssloader = new AsyncLoaderScene(AsyncLoader.SceneLoginAbPath, AsyncLoader.SceneLoginName, AsyncLoader.SceneLoginMapId); cache.Loaders.Add(ssloader); //AsyncLoaderTest testLoader = new AsyncLoaderTest( ); //cache.Loaders.Add( testLoader ); // 准备开始游戏了,加载“加载场景” SceneManager.LoadScene(AsyncLoader.SceneLoader); _state = ReadyToLoadStateType.Ok; break; } case ReadyToLoadStateType.Ok: break; } }
public bool IsInited() { foreach (var one in _baesUrl) { if (AssetBundleMgr.GetInstance().GetAb(one) == null) { return(false); } } return(true); }
// 完全加载完成 public bool CompletedCallback( ) { if (!_isCompleted) { return(false); } foreach (var one in Callbacks) { one.LoadCompleted(AssetBundleMgr.GetInstance( ).GetAb(_mainUrl)); } return(true); }
public string GetUnLoadUrl( ) { // 取一个还没有加载的URL foreach (var one in _urlRequestList) { var ab = AssetBundleMgr.GetInstance( ).GetAb(one); if (ab != null) { continue; } return(one); } return(""); }
// url 加载成功之后的回调 public void UrlLoadedCallBack(string url, AssetBundle ab) { // 没有找到,一定有错 if (!_urlRequestList.Contains(url)) { throw new System.Exception(string.Format("UrlLoadCallBack is not found url in UrlRequestList")); } foreach (var one in _urlRequestList) { var abCache = AssetBundleMgr.GetInstance( ).GetAb(one); if (abCache == null) { // 为 mainUrl 创建一个依赖资源的请求 AssetBundleMgr.GetInstance( ).CreateDependsReques(one, _mainUrl); return; } } _isCompleted = true; }
private void AsyncLoadCallBack(object context, AssetBundle ab) { UiComplexType key = (UiComplexType)context; UiBase uiObj = null; if (_uiInses.ContainsKey(key)) { uiObj = _uiInses[key]; } if (uiObj == null && _addObjs.ContainsKey(key)) { uiObj = _addObjs[key]; } // 回调的时候,界面已经没有了 if (uiObj == null) { return; } Canvas canvas = FindObjectOfType <Canvas>(); if (canvas == null) { string canvasUrl = _urlCanvas; //if (key.UiType == UiType.LoadingBar || key.UiType == UiType.Login) //{ // // 登录和加载界面的背影略有不同 // canvasUrl = _urlCanvasBg; //} AssetBundle abBg = AssetBundleMgr.GetInstance().GetAb(canvasUrl); if (abBg == null) { GameLogger.GetInstance().Debug($"!!!!!GetAb failed. {canvasUrl}"); return; } GameObject canvasObj = MonoBehaviour.Instantiate(abBg.LoadAsset(abBg.GetAllAssetNames()[0])) as GameObject; if (canvasObj == null) { return; } canvasObj.transform.Rotate(0, 0, 0); canvas = canvasObj.GetComponent <Canvas>(); } // 对像挂在 canvas 之下 GameObject obj = MonoBehaviour.Instantiate(ab.LoadAsset(ab.GetAllAssetNames()[0]), canvas.transform) as GameObject; if (obj == null) { return; } obj.transform.Rotate(0, 0, 0); //obj.transform.localScale = new Vector3( 1, 1, 1 ); uiObj.AttachGameObject(obj); }
public void Load3DObj() { string path = _gender == Proto.Gender.Female ? @"models/player/02" : @"models/player/01"; AssetBundleMgr.GetInstance().AsyncLoad(path, AsyncLoadModelCallBack, null); }
protected override void OnAwake() { // 加载模型 AssetBundleMgr.GetInstance().AsyncLoad(@"models/player/01", AsyncLoadModelCallBack, new { isFemale = false }); AssetBundleMgr.GetInstance().AsyncLoad(@"models/player/02", AsyncLoadModelCallBack, new { isFemale = true }); }
public override void Update( ) { Progress = AssetBundleMgr.GetInstance( ).AsyncLoadProgress(AbPath); }
public override void Start( ) { GameLogger.GetInstance( ).Trace($"Try download: {SceneName}, path: {AbPath}"); AssetBundleMgr.GetInstance( ).AsyncLoad(AbPath, AsyncLoadCallBack, null); }