static IEnumerator StartRoutine(QuickStartSettings settings) { SimulationWorldSystem.ClearAllSimulationWorlds(); SceneService.Load(Assets.emptyScene.name, LoadSceneMode.Additive, LocalPhysicsMode.Physics3D); yield return(null); // wait for scene load PlayerProfileService.Instance.SetPlayerProfile(settings.localProfileId); switch (settings.playMode) { case QuickStartSettings.PlayMode.Local: yield return(StartLocal(settings)); break; case QuickStartSettings.PlayMode.OnlineClient: yield return(StartClient(settings)); break; case QuickStartSettings.PlayMode.OnlineServer: yield return(StartServer(settings)); break; } SceneService.UnloadAsync(Assets.emptyScene); }
public virtual void Enter(GameStateParam[] parameters) { if (Definition.SceneToLoadOnEnter != null && !SceneService.IsLoadedOrBeingLoaded(Definition.SceneToLoadOnEnter)) { _sceneLoadPromise = SceneService.Load(Definition.SceneToLoadOnEnter, Definition.SceneLoadSettings); _sceneLoadPromise.OnComplete += OnDefaultSceneLoaded; } }
public void Load() { if (dontLoadDuplicate && SceneService.IsLoadedOrBeingLoaded(sceneInfo)) { return; } _loadPromise = SceneService.Load(sceneInfo.SceneName, new SceneLoadSettings() { Async = loadAsync, LoadSceneMode = LoadSceneMode.Additive, LocalPhysicsMode = LocalPhysicsMode.Physics3D }); _loadPromise.OnComplete += OnSceneLoaded; }
public void UpdateSceneLoading() { if (_tickSystem.AvailableTicks.Count > 0) { SimTickData tick = _tickSystem.AvailableTicks.First(); _tickId.Set(tick.ExpectedNewTickId); // clear ignore list if tick has changed if (_tickId.ClearDirty()) { _inputsToIgnore.Clear(); } foreach (SimInputSubmission inputSubmission in tick.InputSubmissions) { if (inputSubmission.Input is SimCommandLoadScene loadSceneCommand) { if (!IsLoading(loadSceneCommand.SceneName) && !_inputsToIgnore.Contains(loadSceneCommand)) { // add input to 'ignore list' to make sure we don't load the same scenes over and over _inputsToIgnore.Add(loadSceneCommand); // prepare for entity injection (through convertion) _simulationWorldSystem.RegisterIncomingEntityInjection(loadSceneCommand.SceneName); // request load _sceneLoads.Add(SceneService.Load(loadSceneCommand.SceneName, LoadSceneMode.Additive, LocalPhysicsMode.Physics3D)); } } } } // clear when all scenes are loaded if (AreAllLoadsComplete()) { _sceneLoadsToUnregisterOnUpdate.AddRange(_sceneLoads); _sceneLoads.Clear(); } }