public void CreateUIScene(string json) { #if UNITY_EDITOR DebugConfig debugConfig = DataStore.i.debugConfig; if (debugConfig.soloScene && debugConfig.ignoreGlobalScenes) { return; } #endif CreateUISceneMessage uiScene = Utils.SafeFromJson <CreateUISceneMessage>(json); string uiSceneId = uiScene.id; IWorldState worldState = Environment.i.world.state; if (worldState.loadedScenes.ContainsKey(uiSceneId)) { return; } var newGameObject = new GameObject("UI Scene - " + uiSceneId); var newScene = newGameObject.AddComponent <GlobalScene>(); newScene.ownerController = this; newScene.unloadWithDistance = false; newScene.isPersistent = true; LoadParcelScenesMessage.UnityParcelScene data = new LoadParcelScenesMessage.UnityParcelScene { id = uiSceneId, basePosition = new Vector2Int(0, 0), baseUrl = uiScene.baseUrl }; newScene.SetData(data); worldState.loadedScenes.Add(uiSceneId, newScene); OnNewSceneAdded?.Invoke(newScene); worldState.globalSceneId = uiSceneId; Environment.i.messaging.manager.AddControllerIfNotExists(this, worldState.globalSceneId, isGlobal: true); if (VERBOSE) { Debug.Log($"Creating UI scene {uiSceneId}"); } }
public void CreateUIScene(string json) { #if UNITY_EDITOR if (debugScenes && ignoreGlobalScenes) { return; } #endif CreateUISceneMessage uiScene = SafeFromJson <CreateUISceneMessage>(json); string uiSceneId = uiScene.id; if (loadedScenes.ContainsKey(uiSceneId)) { return; } var newGameObject = new GameObject("UI Scene - " + uiSceneId); var newScene = newGameObject.AddComponent <GlobalScene>(); newScene.ownerController = this; newScene.unloadWithDistance = false; newScene.isPersistent = true; LoadParcelScenesMessage.UnityParcelScene data = new LoadParcelScenesMessage.UnityParcelScene { id = uiSceneId, basePosition = new Vector2Int(0, 0), baseUrl = uiScene.baseUrl }; newScene.SetData(data); loadedScenes.Add(uiSceneId, newScene); globalSceneId = uiSceneId; if (!MessagingControllersManager.i.ContainsController(globalSceneId)) { MessagingControllersManager.i.AddController(this, globalSceneId, isGlobal: true); } if (VERBOSE) { Debug.Log($"Creating UI scene {uiSceneId}"); } }