//----------------------------------------------- private void OnPlayerPreSaveArchive(object sender, PlayerPreSaveArchiveEvent e) { MissionArchiveData data = new MissionArchiveData(); Vector3 pos = CoreContainer.Instance.GetPlayerPosition(); data.PlayerPositionX = pos.x; data.PlayerPositionY = pos.y; data.PlayerPositionZ = pos.y; data.CurrentGameScene = GamePlay.Stage.GameSceneManager.Instance.GetCurrentSceneEnum(); data.CurrentMission = GamePlay.Stage.MissionSceneManager.Instance.GetCurrentMissionEnum(); data.StoryTriggered = m_isStoryTriggered; data.ObjectTriggeredCounter = m_objectTriggeredCounter; GlobalManager.GetControllerManager().PlayerArchiveController.CurrentArchiveData.MissionArchieData = data; }
private void OnPlayerLoadArchive(object sender, PlayerLoadArchiveEvent e) { MissionArchiveData data = GlobalManager.GetControllerManager().PlayerArchiveController.CurrentArchiveData.MissionArchieData; SceneLookupEnum gameSceneEnum = data.CurrentGameScene; MissionEnum missionEnum = data.CurrentMission; if (gameSceneEnum != SceneLookupEnum.World_Invalid && gameSceneEnum != SceneLookupEnum.World_GameRoot && missionEnum != MissionEnum.None) { Vector3 PlayerPos = new Vector3(data.PlayerPositionX, data.PlayerPositionY, data.PlayerPositionZ); CoreContainer.Instance.SetPlayerPosition(PlayerPos); GameSceneManager.Instance.LoadScene(gameSceneEnum, "", () => { MissionSceneManager.Instance.SetCurrentMission(missionEnum); MissionSceneManager.Instance.LoadCurrentMissionScene(); //if (MissionSceneManager.Instance.IsMissionSceneExist(missionEnum)) //{ // MissionSceneManager.Instance.LoadMissionScene(missionEnum); //} //else //{ // MissionSceneManager.Instance.LoadMissionScene(MissionEnum.None); //} }); } else { Debug.LogError("Game Scene Enum: " + missionEnum + "nMission Scene Enum:" + gameSceneEnum + "\nIs not exist."); } m_isStoryTriggered = data.StoryTriggered; m_objectTriggeredCounter = data.ObjectTriggeredCounter; if (m_isStoryTriggered == null) { m_isStoryTriggered = new List <string>(); } if (m_objectTriggeredCounter == null) { m_objectTriggeredCounter = new Dictionary <string, int>(); } }