void LoadConfigScene() { // TODO: Emscripten seems to have problems loading statics so reading // from ConfigurationScene.Guid will pretty reliably come back as all zeros var configGuid = new Hash128("46b433b264c69cbd39f04ad2e5d12be8"); // ConfigurationScene.Guid; m_ConfigScene = m_SceneSystem.LoadSceneAsync(configGuid, new SceneSystem.LoadParameters() { AutoLoad = true, Flags = SceneLoadFlags.LoadAdditive }); m_CatalogOp = IOService.RequestAsyncRead(SceneSystem.GetSceneInfoPath()); }
private unsafe bool LoadStartupScenes() { if (m_StartupScenes.IsCreated) { return(true); } var status = m_CatalogOp.GetStatus(); if (status <= AsyncOp.Status.InProgress) { return(false); } if (status == AsyncOp.Status.Failure) { var failureStatus = m_CatalogOp.GetErrorStatus(); if (failureStatus == AsyncOp.ErrorStatus.FileNotFound) { UnityEngine.Debug.LogWarning("Missing catalog file from '" + SceneSystem.GetSceneInfoPath() + "'"); } else { throw new ArgumentException("Failed to load catalog from '" + SceneSystem.GetSceneInfoPath() + "'. status=" + status + ", errorStatus=" + failureStatus); } // a missing catalog file is not fatal, as some runtimes don't use scene data return(true); } Assert.IsTrue(status == AsyncOp.Status.Success); m_CatalogOp.GetData(out var data, out var dataLen); if (!BlobAssetReference <ResourceCatalogData> .TryRead(data, ResourceCatalogData.CurrentFileFormatVersion, out var catalogData)) { throw new ArgumentException("Unable to parse catalog data from " + SceneSystem.GetSceneInfoPath()); } m_SceneSystem.SetCatalogData(catalogData); m_CatalogOp.Dispose(); //if running in LiveLink mode, the initial scenes list is sent from the editor. otherwise use the flags in the scene data. //if (!LiveLinkUtility.LiveLinkEnabled) { m_StartupScenes = new NativeList <Entity>(catalogData.Value.resources.Length, Allocator.Persistent); for (int i = 0; i < catalogData.Value.resources.Length; i++) { if (catalogData.Value.resources[i].ResourceType == ResourceMetaData.Type.Scene && (catalogData.Value.resources[i].ResourceFlags & ResourceMetaData.Flags.AutoLoad) == ResourceMetaData.Flags.AutoLoad) { var sceneGuid = catalogData.Value.resources[i].ResourceId; m_SceneSystem.LoadSceneAsync(sceneGuid, new SceneSystem.LoadParameters() { Flags = SceneLoadFlags.LoadAdditive }); m_StartupScenes.Add(m_SceneSystem.GetSceneEntity(sceneGuid)); } } } return(true); }