Example #1
0
        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();
                }
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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));
            }
        }