Exemplo n.º 1
0
        public void UnloadScene(string sceneKey)
        {
            var queuedMessage = new QueuedSceneMessage()
            {
                type = QueuedSceneMessage.Type.UNLOAD_PARCEL, message = sceneKey
            };

            ProfilingEvents.OnMessageWillQueue?.Invoke(MessagingTypes.SCENE_DESTROY);

            Environment.i.messaging.manager.ForceEnqueueToGlobal(MessagingBusType.INIT, queuedMessage);

            Environment.i.messaging.manager.RemoveController(sceneKey);

            IWorldState worldState = Environment.i.world.state;

            if (worldState.loadedScenes.ContainsKey(sceneKey))
            {
                ParcelScene sceneToUnload = worldState.GetScene(sceneKey) as ParcelScene;
                sceneToUnload.isPersistent = false;

                if (sceneToUnload is GlobalScene globalScene && globalScene.isPortableExperience)
                {
                    OnNewPortableExperienceSceneRemoved?.Invoke(sceneKey);
                }
            }
        }
Exemplo n.º 2
0
        public void UnloadAllScenesQueued()
        {
            var queuedMessage = new QueuedSceneMessage()
            {
                type = QueuedSceneMessage.Type.UNLOAD_SCENES
            };

            ProfilingEvents.OnMessageWillQueue?.Invoke(MessagingTypes.SCENE_DESTROY);

            Environment.i.messaging.manager.ForceEnqueueToGlobal(MessagingBusType.INIT, queuedMessage);
        }
Exemplo n.º 3
0
        public void UpdateParcelScenes(string decentralandSceneJSON)
        {
            var queuedMessage = new QueuedSceneMessage()
            {
                type = QueuedSceneMessage.Type.UPDATE_PARCEL, message = decentralandSceneJSON
            };

            ProfilingEvents.OnMessageWillQueue?.Invoke(MessagingTypes.SCENE_UPDATE);

            Environment.i.messaging.manager.ForceEnqueueToGlobal(MessagingBusType.INIT, queuedMessage);
        }
Exemplo n.º 4
0
        public void UnloadScene(string sceneKey)
        {
            var queuedMessage = new QueuedSceneMessage()
            {
                type = QueuedSceneMessage.Type.UNLOAD_PARCEL, message = sceneKey
            };

            ProfilingEvents.OnMessageWillQueue?.Invoke(MessagingTypes.SCENE_DESTROY);

            Environment.i.messaging.manager.ForceEnqueueToGlobal(MessagingBusType.INIT, queuedMessage);

            Environment.i.messaging.manager.RemoveController(sceneKey);
        }
Exemplo n.º 5
0
        public void LoadParcelScenes(string decentralandSceneJSON)
        {
            var queuedMessage = new QueuedSceneMessage()
            {
                type    = QueuedSceneMessage.Type.LOAD_PARCEL,
                message = decentralandSceneJSON
            };

            ProfilingEvents.OnMessageWillQueue?.Invoke(MessagingTypes.SCENE_LOAD);

            Environment.i.messaging.manager.ForceEnqueueToGlobal(MessagingBusType.INIT, queuedMessage);

            if (VERBOSE)
            {
                Debug.Log($"{Time.frameCount} : Load parcel scene queue {decentralandSceneJSON}");
            }
        }
 public void ForceEnqueueToGlobal(MessagingBusType busId, QueuedSceneMessage queuedMessage)
 {
     messagingControllers[GLOBAL_MESSAGING_CONTROLLER].ForceEnqueue(busId, queuedMessage);
 }
 public void ForceEnqueue(MessagingBusType busType, QueuedSceneMessage queuedMessage)
 {
     messagingBuses[busType].Enqueue(queuedMessage);
 }