예제 #1
0
        private void RequestForResource(IUnityAssetManager assetManager)
        {
            _levelManager.GetRequests(_sceneRequests, _goRequests, _lightmapsRequests);

            foreach (var request in _sceneRequests)
            {
                assetManager.LoadSceneAsync(request, true);
            }

            foreach (var request in _goRequests)
            {
                _levelManager.LoadResource("InitialSceneLoadingSystem", assetManager, request);
            }

            foreach (var request in _lightmapsRequests)
            {
                MeshRenderer     mr    = null;
                List <AssetInfo> infos = new List <AssetInfo>();
                foreach (var ex in request)
                {
                    infos.Add(ex.asset);
                    if (mr == null)
                    {
                        mr = ex.data;
                    }
                }
                assetManager.LoadAssetsAsync(mr, infos, _levelManager.LightmapsLoadedWrapper);
            }

            _sceneRequests.Clear();
            _goRequests.Clear();
            _lightmapsRequests.Clear();
        }
예제 #2
0
        public override void OnLoadResources(IUnityAssetManager assetManager)
        {
            base.OnLoadResources(assetManager);
            foreach (var entity in _player.GetEntities())
            {
                if (!entity.hasAppearanceInterface)
                {
                    continue;
                }
                var loadRequests = entity.appearanceInterface.Appearance.GetLoadRequests();
                if (loadRequests.Count > 0)
                {
                    var call = _assetsAsyncCallPool.Get();
                    call.CreateCallFuncMapping(entity, loadRequests);
                    CreateAssetInfos(loadRequests);
                    assetManager.LoadAssetsAsync(entity, _assetInfos,
                                                 call.CallFunc);
                }

                var recycleRequests = entity.appearanceInterface.Appearance.GetRecycleRequests();
                foreach (var request in recycleRequests)
                {
                    entity.RemoveAsset(request);
                    assetManager.Recycle(request);
                }

                entity.appearanceInterface.Appearance.ClearRequests();
            }
        }
예제 #3
0
        public void OnLoadResources(IUnityAssetManager assetManager)
        {
            _levelManager.GetRequests(_sceneRequests, _goRequests, _lightmapsRequests);

            if (Time.realtimeSinceStartup - prventTime > 1f)
            {
                if (_sceneRequests.Count > 0)
                {
                    var request = _sceneRequests[0];
                    assetManager.LoadSceneAsync(request, true);
                    _logger.InfoFormat("load scene request {0}", request.AssetName);
                    _sceneRequests.RemoveAt(0);
                    prventTime = Time.realtimeSinceStartup;
                }
            }

            //TESTCODE

            foreach (var request in _goRequests)
            {
                _levelManager.LoadResource("VisionCenterUpdateSystem", assetManager, request);
            }

            foreach (var request in _lightmapsRequests)
            {
                MeshRenderer     mr    = null;
                List <AssetInfo> infos = new List <AssetInfo>();
                foreach (var ex in request)
                {
                    infos.Add(ex.asset);
                    if (mr == null)
                    {
                        mr = ex.data;
                    }
                }
                LevelManager lm = _levelManager as LevelManager;
                assetManager.LoadAssetsAsync(mr, infos, lm.LightmapsLoadedWrapper);
            }


            _goRequests.Clear();
            _lightmapsRequests.Clear();
        }