public void LoadScene(string roomId) { if (!GetService <IViewService>().ExistView(RavenhillViewType.loader_view)) { GetService <IViewService>().ShowView(RavenhillViewType.loader_view, new LoaderView.Data { delay = 0.72f, action = () => { var roomData = GetService <IResourceService>().Cast <RavenhillResourceService>().GetRoomData(roomId); if (roomData != null) { RavenhillEvents.OnExitCurrentScene(); var gameModeService = GetService <IGameModeService>()?.Cast <RavenhillGameModeService>(); gameModeService.ChangeRoom(roomId); SceneManager.LoadSceneAsync(roomData.GetScene(gameModeService.roomMode)); } } }); } }