private void loadGame( int slot, GameObject player_game_object = null, PlayerEntity player_entity = null ) { SaveDataService.use_slot = slot; //var game_stage_service = StorageService.load<GameStageService>(slot, "Stage"); var stage_save_data = SaveDataService.loadStage(slot); if (player_game_object != null && player_entity != null && stage_save_data != null ) { DontDestroyOnLoad(player_game_object); MessageBroker.Default.Publish <SceneChangeSimple>(new SceneChangeSimple { add_scene = "Maze", del_scene = "Select", active_scene = "Maze", post_action = () => { SceneService.EnableAllGameObjects("Maze", new List <string>()); // キャラデータを新シーンで展開 UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene( player_game_object, UnityEngine.SceneManagement.SceneManager.GetSceneByName("Maze") ); Debug.Log("SelectSceneManager.loadGame()"); Debug.Log("SelectSceneManager.loadGame() : player_entity.lv : " + player_entity.lv); Debug.Log("SelectSceneManager.loadGame() : player_entity.exp : " + player_entity.exp); PlayerService.nextLevel(player_entity.lv - 1); PlayerService.nextLevel(player_entity.lv); PlayerService.nextLevel(player_entity.lv + 1); player_game_object.transform.position = player_default_position; player_game_object.GetComponent <Animator>().enabled = true; player_game_object.GetComponent <BoxCollider>().enabled = true; player_game_object.GetComponent <NavMeshAgent>().enabled = true; player_game_object.GetComponent <PlayerController>().enabled = true; PlayerService.init(player_game_object, player_entity); Debug.Log("SelectSceneManager.loadGame() : player_entity.equip : " + player_entity.equip.name); // 装備しなおし MessageBroker.Default.Publish <EquipEvent>(new EquipEvent { id = player_entity.equip.id, go = player_game_object, update_service_data = true, }); // ステージデータを新シーンで展開 GameStageService.room_clear_count = stage_save_data.room_clear_count; GameStageService.enemy_strength = stage_save_data.enemy_strength; GameStageService.enemy_num = stage_save_data.enemy_num; // GUI起動 MessageBroker.Default.Publish <ChangeGuiMode>(new ChangeGuiMode { mode = GuiState.Room }); }, }); return; } MessageBroker.Default.Publish <SceneChangeSimple>(new SceneChangeSimple { add_scene = "Maze", del_scene = "Select", active_scene = "Maze", post_action = () => { SceneService.EnableAllGameObjects("Maze", new List <string>()); // 新しいプレイヤーを生成、初期武器ID取得 int equip_id = PlayerService.init(null, null); // 初期武器を装備 MessageBroker.Default.Publish <ChangeEquipEvent>(new ChangeEquipEvent { id = equip_id, }); // 新規ステージデータ設定 GameStageService.room_clear_count = room_clear_count_default; GameStageService.enemy_strength = enemy_strength_default; GameStageService.enemy_num = enemy_num_default; // GUI起動 MessageBroker.Default.Publish <ChangeGuiMode>(new ChangeGuiMode { mode = GuiState.Room }); }, }); }