public override void OnLoadResources(ILoadRequestManager coRoutineManager) { base.OnLoadResources(coRoutineManager); foreach (var entity in _player.GetEntities()) { if (entity.hasAppearanceInterface) { var loadRequests = entity.appearanceInterface.Appearance.GetLoadRequests(); foreach (var request in loadRequests) { var intercept = _interceptPool.Get(); intercept.SetParam(entity, request.Handler); coRoutineManager.AppendLoadRequest(entity, request.AssetInfo, intercept.Call); } var recycleRequests = entity.appearanceInterface.Appearance.GetRecycleRequests(); foreach (var request in recycleRequests) { entity.RemoveAsset(request); coRoutineManager.AddRecycleRequest(request); } entity.appearanceInterface.Appearance.ClearRequests(); } } }
public void OnGoLoadSucc(object source, UnityObjectWrapper <GameObject> obj) { if (null == obj) { _logger.ErrorFormat("Load GameObject Asset Fialed: obj is null."); return; } if (null == obj.Value) { _logger.ErrorFormat("Asset {0}:{1} Load GameObject Fialed ", obj.Address.BundleName, obj.Address.AssetName); return; } int[] para = (int[])source; if (para == null || para.Length != 2) { return; } try { EAssetType atype = (EAssetType)para[0]; switch (atype) { case EAssetType.AUDIO: { //Sound int soundId = para[1]; if (!_dictSounds.ContainsKey(soundId)) { AudioSource audio = obj.Value.GetComponent <AudioSource>(); if (null != audio) { _dictSounds.Add(soundId, audio.clip); } } break; } case EAssetType.EFFECT: { //Effect int effectId = para[1]; _effectPool.AddEffectPrefab(effectId, obj.Value); break; } } _manager.AddRecycleRequest(obj); } catch (Exception e) { _logger.ErrorFormat(e.Message); } }
public void OnLoadSucc(object source, UnityObjectWrapper <GameObject> obj) { SingletonManager.Get <SubProgressBlackBoard>().Step(); _loadingCount--; if (obj.Value == null) { _logger.ErrorFormat("Preload asset {0} failed", obj.Address); } else { _loadRequestManager.AddRecycleRequest(obj); } if (_loadingCount <= 0) { _sessionState.FullfillExitCondition(typeof(PreLoadSystem)); } }