public StreamingManager(ISceneResourceRequestHandler requestHandler, IStreamingGoManager streamingGo, StreamingData sceneDescription, ScenesLightmapData.MeshRecords scenesLightmapRecords, ScenesIndoorCullData.IndoorCullRecords scenesIndoorCullRecords, WorldCompositionParam param, int preloadSceneCount) { _requestHandler = requestHandler; _sceneDescription = sceneDescription; _scenesLightmapRecords = scenesLightmapRecords; _scenesIndoorCullRecords = scenesIndoorCullRecords; _concurrentCount = preloadSceneCount; _worldComposition = new WorldCompositionManager(this, param); _streamingGo = streamingGo ?? new StreamingGoByScene(); _streamingGo.SetResourceHandler(this); _triggerObjectManager = SingletonManager.Get <TriggerObjectManager>(); if (_sceneDescription != null) { var count = _sceneDescription.Scenes.Count; for (int i = 0; i < count; i++) { _sceneIndex.Add(_sceneDescription.Scenes[i].SceneName, i); } } _requestHandler.SceneLoaded += SceneLoaded; _requestHandler.SceneUnloaded += SceneUnloaded; _requestHandler.GoLoaded += GoLoaded; _requestHandler.GoUnloaded += GoUnloaded; }
public StreamingManager(ISceneResourceRequestHandler requestHandler, IStreamingGoManager streamingGo, StreamingData sceneDescription, WorldCompositionParam param, int preloadSceneCount) { _requestHandler = requestHandler; _sceneDescription = sceneDescription; _concurrentCount = preloadSceneCount; _worldComposition = new WorldCompositionManager(this, param); _streamingGo = streamingGo ?? new StreamingGoByScene(); _streamingGo.SetResourceHandler(this); if (_sceneDescription != null) { var count = _sceneDescription.Scenes.Count; for (int i = 0; i < count; i++) { _sceneIndex.Add(_sceneDescription.Scenes[i].SceneName, i); } } _requestHandler.SceneLoaded += SceneLoaded; _requestHandler.SceneUnloaded += SceneUnloaded; _requestHandler.GoLoaded += GoLoaded; _requestHandler.GoUnloaded += GoUnloaded; }
public void SetToWorldCompositionLevel(WorldCompositionParam param, IStreamingGoManager streamingGo) { _fixedSceneNames = param.FixedScenes; _sceneManager = new StreamingManager(this, streamingGo, SingletonManager.Get <StreamingLevelStructure>().Data, param, _fixedSceneNames.Count); RequestForFixedScenes(param.AssetBundleName); }
public InitialSceneLoadingSystem(ISessionState sessionState, Contexts ctx, IStreamingGoManager streamingGo, bool isServer) { _sessionState = sessionState; _contexts = ctx; _sessionState.CreateExitCondition(typeof(InitialSceneLoadingSystem)); _levelManager = new LevelManager(_contexts.session.commonSession.AssetManager, isServer); _contexts.session.commonSession.LevelManager = _levelManager; _initPosition = _contexts.session.commonSession.InitPosition; _isServer = isServer; var allMaps = SingletonManager.Get <MapsDescription>(); switch (allMaps.CurrentLevelType) { case LevelType.BigMap: var worldCompositionParam = new WorldCompositionParam { TerrainMin = allMaps.BigMapParameters.TerrainMin, TerrainDimension = allMaps.BigMapParameters.TerrainDimension, TerrainSize = allMaps.BigMapParameters.TerrainSize, TerrainNamePattern = allMaps.BigMapParameters.TerrainNamePattern, AssetBundleName = allMaps.BigMapParameters.BundleName, PreMapName = allMaps.BigMapParameters.PreMapName, FixedScenes = allMaps.BigMapParameters.AdditiveSceneName, LoadRadiusInGrid = 1.0f, UnloadRadiusInGrid = 1.5f }; if (_isServer) { worldCompositionParam.LoadRadiusInGrid = float.MaxValue; worldCompositionParam.UnloadRadiusInGrid = float.MaxValue; } _levelManager.SetToWorldCompositionLevel(worldCompositionParam, streamingGo); _levelManager.SetAsapMode(true); break; case LevelType.SmallMap: _levelManager.SetToFixedScenesLevel(new OnceForAllParam { AssetBundleName = allMaps.SmallMapParameters.BundleName, FixedScenes = new List <string> { allMaps.SmallMapParameters.AssetName } }); break; case LevelType.Exception: throw new InvalidEnumArgumentException("map id not set"); } }
public void SetToWorldCompositionLevel(WorldCompositionParam param, IStreamingGoManager streamingGo) { _fixedSceneNames = param.FixedScenes; StreamingLevelStructure streamingLevel = SingletonManager.Get <StreamingLevelStructure>(); ScenesLightmapStructure lightmap = SingletonManager.Get <ScenesLightmapStructure>(); lightmap.ListToDict(); ScenesIndoorCullStructure indoor = SingletonManager.Get <ScenesIndoorCullStructure>(); indoor.ListToDict(); _sceneManager = new StreamingManager(this, streamingGo, streamingLevel.Data, lightmap.Data, indoor.Data, param, _fixedSceneNames.Count); //RequestForFixedScenes(param.AssetBundleName); RequestForFixedScenes(param.PreMapName + "/scene"); }